Расположение и комбинация нескольких массивов Java, конкретный контент заключается в следующем
Примечание. Существует множество мобильных телефонов с различными цветами, размерами и версиями, а затем им необходимо объединить различные атрибуты между ними.
Определите различные атрибуты
String [] color = {"red", "white", "blue", "gold"}; string [] size = {"4,7 дюйма", "5,1 дюйма", "6,0 дюйма"}; string [] version = {"unicom", "telecom", "Mobile", "Enterprise"};Давайте сначала посмотрим результаты
Красный, 4,7 дюйма, полный доступ к сети,
красный, 4,7 дюйма, мобильный,
Красный, 4,7 дюйма, телеком
Красный, 4,7 дюйма, Unicom,
Красный, 5,1 дюйма, полный доступ к сети,
Белый, 5,1 дюйма, мобильный,
Белый, 5,1 дюйма, Unicom,
Белый, 6,0 дюймов, полный доступ к сети, ……………… Я только что опубликовал так много, это должно быть понятно
ОК, добавьте код
public void doExchange (списки Arraylists) {int len = arraylists.size (); // Судите, размер массива меньше 2. Если он меньше, это означает, что рекурсивное завершение было завершено. В противном случае, что вы понимаете, не понимаете? Посмотрите на код периодически, если (len <2) {this.arraylists = arraylists; возвращаться; } // Получить первый массив int len0; if (arraylists.get (0) encementof string []) {string [] arr0 = (string []) arraylists.get (0); len0 = arr0.length; } else {len0 = ((arraylist <string>) arraylists.get (0)). size (); } // Получить вторую строку массива [] arr1 = (string []) arraylists.get (1); int len1 = arr1.length; // Рассчитайте, сколько комбинаций из двух массивов может образовывать int lenboth = len0*len1; // Определите набор временного хранения ArrayList Data ArrayList <arraylist <string >> temparraylists = new ArrayList <> (Lenboth); // Первый слой для IS для первого элемента арестителей петли (int i = 0; i <len0; i ++) {// второй слой для IS для второго элемента Arraylists петли (int j = 0; j <len1; j ++) {// Судья Первый элемент, если первый элемент является описанием Array, Loop имеет Just Begun If if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if. String []) {string [] arr0 = (string []) arraylists.get (0); Arraylist <string> arr = new ArrayList <> (); arr.add (arr0 [i]); arr.add (arr1 [j]); // Добавить данные о договоренности во временный набор TemparrayLists.add (arr); } else {// На данный момент ясно, что есть хотя бы один раунд. Мы снимаем результат предыдущего раунда и продолжаем организовать следующий элемент 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); }}} // Это коллекция, регенерированная на основе приведенного выше списка аранжировки newarraylists = new ArrayList <> (); // упаковывать массив, который не был организован, и ясно видите I = 2, поскольку первые два массива закончены, нет необходимости добавлять их снова для (int i = 2; i <arraylists.size (); i ++) {newarraylists.add (arraylists.get (i)); } // Не забудьте добавить данные, которые мы усердно работали, чтобы договориться о первом месте в новом наборе, в противном случае будет бесполезно быть newarraylists.add (0, Temparraylists); // Вы читаете это правильно, весь наш алгоритм использует идею рекурсии. doExchange (newarraylists); }Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.