#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 Да, это звучит совершенно правильно, я не полностью осознал проблему, и в моем алгоритме отсутствует пара итераций