Pengaturan dan kombinasi beberapa array Java, konten spesifiknya adalah sebagai berikut
Catatan: Ada batch ponsel dengan berbagai warna, ukuran, dan versi, dan kemudian mereka perlu menggabungkan berbagai atribut di antara mereka.
Tentukan berbagai atribut
String [] color = {"merah", "putih", "biru", "emas"}; string [] size = {"4,7 inci", "5,1 inci", "6,0 inci"}; string [] versi = {"unicom", "telecom", "mobile", "enterprise"};Mari kita lihat hasilnya dulu
Merah, 4,7 inci, akses jaringan penuh,
merah, 4,7 inci, seluler,
Merah, 4,7 inci, telekomunikasi,
Merah, 4,7 inci, unicom,
Merah, 5,1 inci, akses jaringan penuh,
Putih, 5,1 inci, seluler,
Putih, 5,1 inci, unicom,
Putih, 6,0 inci, akses jaringan penuh, ……………… Saya baru saja memposting begitu banyak, itu harus dimengerti
Oke, tambahkan kodenya
public void doexchange (daftar arraylists) {int len = arraylists.size (); // menilai apakah ukuran array kurang dari 2. Jika kurang dari, itu berarti bahwa penyelesaian rekursif telah selesai. Kalau tidak, apa yang Anda pahami, tidak mengerti? Lihatlah kode sebentar -sebentar jika (len <2) {this.arraylists = arraylists; kembali; } // Dapatkan array pertama int len0; if (arraylists.get (0) instanceof string []) {string [] arr0 = (string []) arraylists.get (0); len0 = arr0.length; } else {len0 = ((arraylist <string>) arraylist.get (0)). size (); } // Dapatkan string array kedua [] arr1 = (string []) arraylists.get (1); int len1 = arr1.length; // Hitung berapa banyak kombinasi dari dua array yang dapat membentuk int lenboth = len0*len1; // Tentukan seperangkat penyimpanan sementara array arraylist <arraylist <string>> temparraylists = new arraylist <> (lenboth); // Lapisan pertama adalah untuk elemen pertama dari loop arraylist (int i = 0; i <len0; i ++) {// lapisan kedua adalah untuk elemen kedua dari loop arraylists (int j = 0; j <len1; j ++) {// menilai elemen pertama jika elemen pertama adalah deskripsi array, len1; j ++) {// menilai elemen pertama jika elemen pertama adalah deskripsi array, len1; j ++) {// menilai elemen pertama jika elemen pertama adalah deskripsi array, len1; j ++) {// menilai elemen pertama jika elemen pertama adalah deskripsi array, len1; j ++) {// menilai elemen pertama jika elemen pertama adalah deskripsi array, array, the lOme. String []) {string [] arr0 = (string []) arraylist.get (0); ArrayList <String> arr = new ArrayList <> (); arr.add (arr0 [i]); arr.add (arr1 [j]); // Tambahkan data pengaturan ke set sementara temparraylists.add (ARR); } else {// Pada titik ini, jelas bahwa setidaknya ada satu putaran. Kami mengambil hasil putaran sebelumnya dan terus mengatur elemen berikutnya dari arraylist arrayList <arraylist <string>> arrtemp = (arraylist <arraylist <string>) arraylist.get (0); ArrayList <String> arr = new ArrayList <> (); untuk (int k = 0; k <arrtemp.get (i) .size (); k ++) {arr.add (arrtemp.get (i) .get (k)); } arr.add (arr1 [j]); temparraylists.add (arr); }}} // Ini adalah koleksi yang diregenerasi berdasarkan daftar pengaturan di atas newArrayLists = new ArrayList <> (); // Kemas array yang belum diatur dan lihat dengan jelas i = 2, karena dua array pertama selesai, tidak perlu menambahkannya lagi untuk (int i = 2; i <arraylists.size (); i ++) {newarraylists.add (arraylists.get (i)); } // Ingatlah untuk menambahkan data yang telah kami kerjakan dengan keras untuk mengatur ke tempat pertama di set baru, jika tidak, tidak ada gunanya menjadi newarraylists.add (0, TemparrayLists); // Anda membacanya dengan benar, seluruh algoritma kami menggunakan ide rekursi. doexchange (newarraylists); }Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.