Перебирать вложенный список массивов и создавать 2 новых списка массивов из значений во вложенном списке массивов?

#java #arrays #arraylist #collections

#java #массивы #список массивов #Коллекции

Вопрос:

Ввод:

  mainList= ArrayList size = 4: 0 = {
           expression = ArrayList size = 8: 0 = {
              names: "name"
              values: ArrayList size = 1: {
                 0: "value"
             }
            }
        }
  

Мне нужно выполнить итерацию по этому списку массивов и создать 2 новых списка массивов, 1 из которых содержит список строк из имен и 1, содержащий список строк из значений

Объяснение структуры данных:

mainList содержит ArrayList из 4 записей, каждая запись представляет собой ArrayList с именем expressions, который содержит 8 записей, каждая запись имеет строковое значение «имена» и ArrayList с именем «значения», который имеет одно строковое значение.

Я пробовал:

 List<String> names = new ArrayList<>();
List<String> values= new ArrayList<>();
        for(int i=0; i < mainList.size(); i  ) {
            names.add(mainList.get(i));
              for(int i=0; i < names.size(); i  ) {
              values.add(names.get(i));
          }

        }
  

Желаемый результат:

имена = размер списка массивов = 8 {name1, name2 …name8};

значения = размер списка массивов = 4 {значения1, значения2 … значения4};

Комментарии:

1. Я думаю, вам не хватает нескольких уровней вложенности в вашем коде. Если я правильно понял ваше описание, вам понадобится 1) внешний цикл для перебора списков выражений; 2) цикл 2-го уровня для перебора выражений в каждом списке выражений; 3) цикл 3-го уровня для перебора пар имя / список значений в каждом списке выраженийвыражение и 4) заключительный цикл для повторения отдельных значений в списке значений

2. @KevinAnderson Да, это звучит совершенно правильно, я не полностью осознал проблему, и в моем алгоритме отсутствует пара итераций