La disposición y la combinación de múltiples matrices de Java, el contenido específico es el siguiente
Nota: Hay un lote de teléfonos móviles con varios colores, tamaños y versiones, y luego necesitan combinar varios atributos entre ellos.
Definir varios atributos
String [] color = {"rojo", "blanco", "azul", "dorado"}; string [] size = {"4.7 pulgadas", "5.1 pulgadas", "6.0 pulgadas"}; string [] versión = {"unicom", "telecom", "móvil", "empresa"};Veamos los resultados primero
Rojo, 4.7 pulgadas, acceso completo a la red,
rojo, 4.7 pulgadas, móvil,
Rojo, 4.7 pulgadas, telecomunicaciones,
Rojo, 4.7 pulgadas, unicom,
Red, 5.1 pulgadas, acceso completo a la red,
Blanco, 5.1 pulgadas, móvil,
Blanco, 5.1 pulgadas, unicom,
Blanco, 6.0 pulgadas, acceso completo a la red, ………………… Acabo de publicar tantos, debería ser comprensible
Ok, agregue el código
public void doExchange (List ArrayLists) {int Len = ArrayLists.size (); // juzga si el tamaño de la matriz es inferior a 2. Si es menor que, significa que la finalización recursiva se ha completado. De lo contrario, ¿qué entiendes, no entiendes? Mire el código intermitentemente si (len <2) {this.ArrayLists = ArrayLists; devolver; } // Obtenga la primera matriz int LEN0; if (arrayLists.get (0) instanciaf string []) {string [] arr0 = (string []) arrayLists.get (0); len0 = arr0.length; } else {len0 = ((ArrayList <String>) ArrayLists.get (0)). Size (); } // Obtenga la segunda cadena de matriz [] arr1 = (string []) arrayLists.get (1); int len1 = arr1.length; // Calcule cuántas combinaciones de las dos matrices pueden formarse int Lenboth = len0*len1; // Defina el conjunto de almacenamiento temporal de datos de matriz ArrayList <ArrayList <String>> TempArrayLists = new ArrayList <> (LenBoth); // La primera capa para el primer elemento de los bucle ArrayLists (int i = 0; i <len0; i ++) {// La segunda capa para el segundo elemento de la arrayLists de bucle (int j = 0; j <len1; j ++) {// juzga el primer elemento si el primer elemento es una descripción de la matriz, el bucle solo ha comenzado (arraylists.get (0) {] Cadena [] arr0 = (string []) arrayLists.get (0); ArrayList <String> arr = new ArrayList <> (); arr.add (arr0 [i]); arr.add (arr1 [j]); // Agregue los datos de la disposición al conjunto temporal TempArrayLists.Add (arr); } else {// En este punto, está claro que hay al menos una ronda. Sacamos el resultado de la ronda anterior y continuamos organizando el siguiente elemento de ArrayLists ArrayList <ArrayList <String>> Artemp = (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); }}} // Esta es una colección regenerada basada en la lista de disposiciones de arriba newArrayLists = new ArrayList <> (); // empacar la matriz que no se ha organizado y ver claramente i = 2, porque las dos primeras matrices están terminadas, no hay necesidad de agregarlas nuevamente para (int i = 2; i <arrayLists.size (); i ++) {newArrayLists.add (arrayLists.get (i)); } // Recuerde agregar los datos que hemos trabajado duro para organizar hasta el primer lugar en el nuevo conjunto, de lo contrario será inútil ser newArrayLists.add (0, TempArrayLists); // Lo leíste bien, todo nuestro algoritmo utiliza la idea de recursión. doExchange (newArrayLists); }Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.