我尝试在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);
^
我真的无法找到为什么第三次获取不起作用但第二种确实无效...我希望有人可以帮助我。
谢谢,
克里斯
答案 0 :(得分:2)
我认为possibleNumbers
的类型为ArrayList<ArrayList<Object>>
。因此,从possibleNumbers.get( y ).get( x )
返回的对象被视为Object
。如果你施放它会发生什么?
答案 1 :(得分:2)
问题在于你试图将三个层次深入到两级结构中:
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 :(得分:0)
您有一个包含列表的列表:
possibleNumbers //ArrayList<ArrayList>
第一个获得将返回其中一个列表:
posibleNumbers.get(y) //-> ArrayList
第二次获取将获得该列表的一个条目:
possibleNumbers.get(y).get(x) //-> list entry
所以最后的get(0)
太多了。