package com.javarush.task.task10.task1015;
import java.util.ArrayList;
/*
Массив списков строк
*/
public class Solution {
public static void main(String[] args) {
ArrayList<String>[] arrayOfStringList = createList();
printList(arrayOfStringList);
}
public static ArrayList<String>[] createList() {
ArrayList<String> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();
ArrayList<String> list3 = new ArrayList<>();
list1.add("abc");
list2.add("dcf");
list1.add("abc1");
list2.add("dcf1");
list1.add("abc2");
list2.add("dcf2");
list3.add("qwe");
list3.add("qwe1");
ArrayList<String>[] arrayLists = new ArrayList[3]; // по этой строке гуглил, написанно что так делать нельзя (заложено в самой джаве).
arrayLists[0].addAll(list1); // Собственно: тут выдает Exception(замена цифр не помогла)
arrayLists[1].addAll(list2); // тут addAll так как видел такую запись в другом решении, но там было Collections.addAll(arrayLists[0], "dffd");
arrayLists[2].addAll(list3);
return arrayLists;
}
public static void printList(ArrayList<String>[] arrayOfStringList) {
for (ArrayList<String> list : arrayOfStringList) {
for (String s : list) {
System.out.println(s);
}
}
}
}
Vodevil
33 уровень
Не понимаю почему выдает NullPointerException, и некоторые сложности в самой задачи.
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vodevil
28 марта 2018, 21:47
В общем, при вставке такого кода, заработало.
Но почему надо именно так проводить инициализацию, и почему нельзя добавить в массив листов, уже готовый лист с кучей значений, не понятно. Буду благодарен если кто-то объяснит
0
Сергеев ВикторMaster
28 марта 2018, 22:01полезный
вы пытаетесь вызвать метод на неициализированном объекте массива, поэтому ловите NPE.
Какое значение принимают ссылочные переменные после создания?
+2
Vodevil
28 марта 2018, 22:19
Спасибо за ответ, недосмотрел за этим нюансом. Благодарю
0