Как инициализировать элементы ArrayList? - PullRequest
1 голос
/ 30 ноября 2011

Как мне инициализировать значения ArrayList ?

Я нашел это в интернете, но он не работает.

ArrayList<Kaart>[] hand = (ArrayList<Kaart>[]) new ArrayList[AANTALSPELERS];

Все элементы hand равны null. Я получаю nullPointerException из-за этого. Каарт - это класс, который я создал. AANTALSPELERS является приватным статическим финалом int.

Ответы [ 4 ]

6 голосов
/ 30 ноября 2011

Массив Object s имеет элементы, инициализированные на null (точно так же, как массив int s инициализируется нулями).

Итак, прежде чем вы сможете использовать элементы массива, вы должны инициализировать каждый элемент.

ArrayList[] al = new ArrayList[5];

for( int i = 0; i < al.length; i++ )
    al[i] = new ArrayList();
3 голосов
/ 30 ноября 2011

Это правильный путь, используя дженерики. Обратите внимание, что предупреждение неизбежно (вы можете использовать аннотацию @SuppressWarnings, если это проблема):

ArrayList<Kaart>[] array = (ArrayList<Kaart>[]) new ArrayList[AANTALSPELERS];
for (int i = 0; i < AANTALSPELERS; i++)
    array[i] = new ArrayList<Kaart>();
0 голосов
/ 30 ноября 2011

вы создали Array из AANTALSPELERS элементов, и каждый элемент может содержать ArrayList.

Поскольку вы не добавили ArrayList к Array, Array будет иметь элемент по умолчанию null.

Вам также нужно сделать что-то подобное, чтобы заполнить Array ArrayList

for(int i = 0; i < hand.length; i++)
    hand[i] = new ArrayList();// or the arraylist you have
0 голосов
/ 30 ноября 2011

Попробуйте использовать ListMultimap в Guava, где ключом является индекс.

ListMultimap<Integer, Kaart>

Он позаботится обо всей инициализации списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...