Невозможно получить значения из глубокого ArrayList в Java - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь сохранить и получить номера в ArrayList, который у меня есть. У меня есть это в моем классе:

private ArrayList<ArrayList> possibleNumbers = new ArrayList<ArrayList>();

Затем я заполняю его пустыми списками массивов, чтобы убедиться, что в нем есть что-то для каждого y

for( int x = 0; x < grid[ y ].length; x++ )
{
    possibleNumbers.get( y ).add( x , new ArrayList<Integer>());
}

Теперь гораздо позже в моем коде у меня есть ArrayList с парой чисел в переменной 'list', в этом списке установлены возможные числа:

possibleNumbers.get( y ).set( x, list );

Позже я пытаюсь получить значение из вставленного списка:

possibleNumbers.get( y ).get( x ).get( 0 );

Но теперь я получаю сообщение об ошибке:

symbol  : method get(int)
location: class java.lang.Object
possibleNumbers.get( y ).get( x ).get(0);
                                 ^

Я действительно не могу понять, почему этот третий не работает, а второй работает ... Я надеюсь, что кто-то может мне помочь.

Спасибо

Chris

Ответы [ 3 ]

2 голосов
/ 19 октября 2011

Проблема в том, что вы пытаетесь пройти три уровня глубины в двухуровневую структуру:

possibleNumbers.get( y ).get( x ).get( 0 )
  • possibleNumbers является ArrayList<ArrayList<Object>>
  • possibleNumbers.get(y) является ArrayList<Object>
  • possibleNumbers.get(y).get(x) является Object

Вы не можете позвонить get(0) на Object.

2 голосов
/ 19 октября 2011

Я предполагаю, что possibleNumbers имеет тип ArrayList<ArrayList<Object>>.Итак, объект, возвращаемый из possibleNumbers.get( y ).get( x ), считается Object.Что происходит, если вы разыгрываете его?

0 голосов
/ 19 октября 2011

У вас есть список, который содержит списки:

possibleNumbers //ArrayList<ArrayList>

Первый get будет возвращать один из этих списков:

posibleNumbers.get(y) //-> ArrayList

Второй get получит одну записьиз этого списка:

possibleNumbers.get(y).get(x) //-> list entry

Так что окончательный get(0) слишком много.

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