Die Anordnung und Kombination mehrerer Java -Arrays ist der spezifische Inhalt wie folgt
Hinweis: Es gibt eine Reihe von Mobiltelefonen mit verschiedenen Farben, Größen und Versionen, und dann müssen sie verschiedene Attribute zwischen ihnen kombinieren.
Verschiedene Attribute definieren
String [] color = {"Red", "White", "Blue", "Gold"}; String [] size = {"4,7 Zoll", "5,1 Zoll", "6,0 Zoll"}; String [] Version = {"Unicom", "Telecom", "Mobile", "Enterprise"};Lassen Sie uns zuerst die Ergebnisse sehen
Rot, 4,7 Zoll, vollständiger Netzwerkzugriff,
rot, 4,7 Zoll, mobil,
Rot, 4,7 Zoll, Telekommunikation,
Rot, 4,7 Zoll, Unicom,
Rot, 5,1 Zoll, vollständiger Netzwerkzugriff,
Weiß, 5,1 Zoll, mobil,
Weiß, 5,1 Zoll, Unicom,
Weiß, 6,0 Zoll, vollständiger Netzwerkzugriff, ……………… Ich habe gerade so viele gepostet, dass es verständlich sein sollte
Ok, fügen Sie den Code hinzu
public void doExchange (listen arraynlists) {int len = arraynlists.size (); // Beurteilen Sie, ob die Arraygröße weniger als 2. ist. Wenn sie geringer ist als, bedeutet dies, dass die rekursive Fertigstellung abgeschlossen wurde. Ansonsten, was verstehst du, verstehst du nicht? Schauen Sie sich den Code zeitweise an, wenn (len <2) {this.arraynlists = arrayLists; zurückkehren; } // Erhalten Sie das erste Array int len0; if (arrayLists.get (0) Instanz von String []) {String [] arr0 = (string []) ArrayLists.get (0); len0 = arr0.länge; } else {len0 = ((arrayList <string>) arraylists.get (0)). size (); } // Die zweite Array -String [] arr1 = (String []) arrraylists.get (1); int len1 = arr1.length; // Berechnen Sie, wie viele Kombinationen der beiden Arrays int lenboth = len0*len1 bilden können; // Definieren Sie den Satz des temporären Speichers von Array -DatenarrayList <ArrayList <string >> temparraynlists = new ArrayList <> (Lenboth); // Die erste Ebene für das erste Element der Loop -Arraylisten (int i = 0; i <len0; i ++) {// Die zweite Ebene für das zweite Element der Loop -Arraylisten (int j = 0; j <len1; j ++) {/// Das erste Element, wenn das erste Element das erste Element ist. String []) {string [] arr0 = (string []) arraylists.get (0); ArrayList <string> arr = new ArrayList <> (); arr.add (arr0 [i]); arr.add (arr1 [j]); // Die Anordnungsdaten dem temporären festgelegten Temparraynlisten (arr) hinzufügen; } else {// Zu diesem Zeitpunkt ist klar, dass es mindestens eine Runde gibt. Wir nehmen das Ergebnis der vorherigen Runde heraus und ordnen weiterhin das nächste Element von ArrayLists ArrayList <arrayList <string >> arrTemp = (ArrayList <arrayList <string >>) arraylists.get (0) an; ArrayList <string> arr = new ArrayList <> (); für (int k = 0; k <arrTemp.get (i) .SIZE (); K ++) {arr.add (arrTemp.get (i) .get (k)); } arr.add (arr1 [j]); temparraynlists.add (arr); }}} // Dies ist eine Sammlung, die auf der oben genannten Arrangementliste neu generiert wird. // Packen Sie das Array ein, das nicht angeordnet wurde, und sehen Sie deutlich i = 2, da die ersten beiden Arrays abgeschlossen sind, müssen sie nicht erneut hinzugefügt für (int i = 2; i <arrayLists.size (); i ++) {newarraynlists.add (arraylists.get (i)); } // Denken Sie daran, die Daten hinzuzufügen, die wir hart gearbeitet haben, um den ersten Platz im neuen Satz zu veranlassen. Andernfalls ist es nutzlos, newArraynlisten zu sein. // Sie haben das Recht gelesen, unser gesamter Algorithmus verwendet die Idee der Rekursion. doExchange (newarraynlists); }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.