У меня есть список списков, используя следующий код:
ArrayList<List<String>> keyHold = new ArrayList<List<String>>();
String cold[] = new String[]{"actions","cold","enabled"};
List<String> lCold = Arrays.asList(cold);
lCold.add(Rows.getRow(rowNum, 0));
keyHold.add(lCold);
String warm[] = new String[]{"actions","warm","enabled"};
List<String> lWarm = Arrays.asList(warm);
lWarm.add(Rows.getRow(rowNum, 1));
keyHold.add(lWarm);
Это происходит для многих других вариантов этого, с изменением строк.
То, что я хочу сделать, это перебрать список моих списков, а для каждого из них добавить значение в этот список. До сих пор я борюсь за ответ, и любая помощь будет оценена по достоинству.
Надеюсь, этот код поможет вам достичь своей цели, мне кажется, что, поскольку вы вызываете.add() в List, который является интерфейсом, а не реализацией интерфейса List (например, ArrayList/LinkedList), вы получаете ошибку.
String cold[] = new String[]{"actions","cold","enabled"};
String warm[] = new String[]{"actions","warm","enabled"};
List<String> lCold = new ArrayList<String>(Arrays.asList(cold));
List<String> lWarm = new ArrayList<String>(Arrays.asList(warm));
List<ArrayList> listOfLists = new ArrayList<ArrayList>();//Create a list of lists
listOfLists.add((ArrayList<String>) lCold);
listOfLists.add((ArrayList<String>) lWarm);
Iterator<ArrayList> firstIterator = listOfLists.iterator();
while(firstIterator.hasNext()){//Iterate list of lists
ArrayList<String> list = firstIterator.next();
list.add("String");
}
for(String s: lCold){
System.out.println(s);
}
for(String s: lWarm){
System.out.println(s);
}
Чтобы перебирать список списков, вы будете использовать итератор, который возвращает List<String>
. Затем вы можете работать с текущим экземпляром List<String>
хранящимся в List<List<String>>
и добавлять элемент или делать другие вещи.
Вот пример:
for (List<String> stringList : keyHold) {
if (<condition>) {
stringList.add(<value you want/need to add>);
}
}
Статический метод asList(T... a)
из Arrays class
возвращает только представление списка массива. Вот почему вы получаете исключение (java.lang.UnsupportedOperationException
), когда вы пытаетесь добавить элемент в список.