O arranjo e a combinação de várias matrizes Java, o conteúdo específico é o seguinte
Nota: Há um lote de telefones celulares com várias cores, tamanhos e versões e, em seguida, eles precisam combinar vários atributos entre eles.
Defina vários atributos
String [] color = {"vermelho", "branco", "azul", "ouro"}; string [] size = {"4,7 polegadas", "5,1 polegadas", "6,0 polegadas"}; string [] versão = {"unicom", "Telecom", "Mobile", "Enterprise"};Vamos ver os resultados primeiro
Vermelho, 4,7 polegadas, acesso completo à rede,
vermelho, 4,7 polegadas, celular,
Vermelho, 4,7 polegadas, Telecom,
Vermelho, 4,7 polegadas, unicom,
Red, 5,1 polegadas, acesso completo de rede,
Branco, 5,1 polegadas, celular,
Branco, 5,1 polegada, unicom,
Branco, 6,0 polegadas, acesso completo à rede, ……………… acabei de postar tantos, deve ser compreensível
OK, adicione o código
public void Doexchange (List ArrayLists) {int len = ArrayLists.size (); // julga se o tamanho da matriz é menor que 2. Se for menor que, significa que a conclusão recursiva foi concluída. Caso contrário, o que você entende, não entende? Veja o código intermitentemente se (len <2) {this.arraylists = ArrayLists; retornar; } // Obtenha a primeira matriz 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 (); } // Obtenha a segunda array string [] arr1 = (string []) ArrayLists.get (1); int len1 = arr1.length; // Calcule quantas combinações das duas matrizes podem formar int lenboth = len0*len1; // Defina o conjunto de armazenamento temporário de dados Array ArrayList <ArrayList <String>> temparraylists = new ArrayList <> (Lenboth); // A primeira camada para é o primeiro elemento dos Arraylists de Loop (int i = 0; i <len0; i ++) {// a segunda camada para é o segundo elemento do araylists de loop (int j = 0; String []) {String [] ARR0 = (String []) ArrayLists.get (0); ArrayList <String> arr = new ArrayList <> (); Arr.add (arr0 [i]); Arr.add (arr1 [j]); // Adicione os dados do arranjo ao conjunto temporário temparraylists.add (arr); } else {// Neste ponto, fica claro que há pelo menos uma rodada. Retiramos o resultado da rodada anterior e continuamos a organizar o próximo elemento do ArrayLists ArrayList <ArrayList <String>> Arrtemp = (ArrayList <ArrayList <String>) ArrayLists.get (0); ArrayList <String> arr = new ArrayList <> (); para (int k = 0; k <arrtemp.get (i) .size (); k ++) {arr.add (arrtemp.get (i) .get (k)); } arr.add (arr1 [j]); temparraylists.add (arr); }}} // Esta é uma coleção regenerada com base na lista de arranjos acima newArrayLists = new ArrayList <> (); // Pacote a matriz que não foi organizada e veja claramente i = 2, porque as duas primeiras matrizes estão finalizadas, não há necessidade de adicioná -las novamente para (int i = 2; i <ArrayLists.size (); i ++) {newArrayLists.add (ArrayLists.get (i)); } // Lembre -se de adicionar os dados que trabalhamos duro para organizar ao primeiro lugar no novo conjunto, caso contrário, será inútil ser newArrayLists.add (0, temparraylists); // Você leu certo, todo o nosso algoritmo usa a idéia de recursão. Doexchange (newArraylists); }O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.