L'arrangement et la combinaison de plusieurs tableaux Java, le contenu spécifique est le suivant
Remarque: Il y a un lot de téléphones mobiles avec différentes couleurs, tailles et versions, puis ils doivent combiner divers attributs entre eux.
Définir divers attributs
String [] Color = {"Red", "White", "Blue", "Gold"}; String [] size = {"4.7 pouces", "5.1 pouces", "6,0 pouces"}; String [] version = {"Unicom", "Telecom", "mobile", "Enterprise"};Voyons d'abord les résultats
Rouge, 4,7 pouces, accès complet au réseau,
Rouge, 4,7 pouces, mobile,
Rouge, 4,7 pouces, télécoms,
Rouge, 4,7 pouces, Unicom,
Red, 5,1 pouces, accès complet au réseau,
Blanc, 5,1 pouces, mobile,
Blanc, 5,1 pouces, unicom,
Blanc, 6,0 pouces, accès complet au réseau, ……………… Je viens d'en publier tellement, cela devrait être compréhensible
Ok, ajoutez le code
public void doExchange (list arraylists) {int len = arraylists.size (); // juger si la taille du tableau est inférieure à 2. S'il est inférieur à ce que cela signifie que l'achèvement récursif est terminé. Sinon, que comprenez-vous, ne comprenez pas? Regardez le code par intermittence if (len <2) {this.arraylists = arrayLists; retour; } // Obtenez le premier tableau int len0; if (arraylists.get (0) instanceof String []) {String [] arr0 = (String []) arraylists.get (0); len0 = arr0.length; } else {len0 = ((arrayList <string>) arraylists.get (0)). size (); } // Obtenez le deuxième tableau String [] arr1 = (String []) arraylists.get (1); int len1 = arr1.length; // Calculer le nombre de combinaisons des deux tableaux peut former int lenboth = Len0 * Len1; // Définissez l'ensemble du stockage temporaire des données Array ArrayList <ArrayList <string>> temparraylists = new ArrayList <> (LenBoth); // La première couche pour est le premier élément des listes de table de boucle (int i = 0; i <len0; i ++) {// la deuxième couche pour est le deuxième élément de la boucle de lieux de boucle (int j = 0; j <len1; j ++) {// juge le premier élément si le premier élément est une description de l'arrêt, la boucle a commencé à commencer if (Arraylists.Get. String []) {String [] Arr0 = (String []) arraylists.get (0); ArrayList <string> arr = new ArrayList <> (); Arr.Add (Arr0 [i]); Arr.Add (Arr1 [J]); // Ajouter les données d'arrangement à l'ensemble temporaire temparraylists.add (arr); } else {// À ce stade, il est clair qu'il y a au moins un tour. Nous supprimons le résultat du tour précédent et continuons d'organiser l'élément suivant de ArrayLists ArrayList <ArrayList <string >> ArrTemp = (ArrayList <ArrayList <string >>) Arraylists.get (0); ArrayList <string> arr = new ArrayList <> (); for (int k = 0; k <arrTemp.get (i) .size (); k ++) {arr.add (arrTemp.get (i) .get (k)); } arr.add (arr1 [j]); temparraylists.add (arr); }}} // Il s'agit d'une collection régénérée en fonction de la liste des arrangements ci-dessus newArrayLists = new ArrayList <> (); // Emballez le tableau qui n'a pas été organisé et voyez clairement i = 2, car les deux premiers tableaux sont terminés, il n'est pas nécessaire de les ajouter à nouveau pour (int i = 2; i <arraylists.size (); i ++) {newArraylists.add (arraylists.get (i)); } // N'oubliez pas d'ajouter les données que nous avons travaillées dur pour organiser à la première place dans le nouvel ensemble, sinon il sera inutile d'être newArrayLists.add (0, temparraylists); // Vous avez bien lu, notre algorithme entier utilise l'idée de la récursivité. DoExchange (NewArraylists); }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.