无法从Java中的深层ArrayList获取值
我尝试在我拥有的 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,变量“列表”中设置了几个数字该列表可能的数字:
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);
^
我真的找不到为什么第三个获取不起作用但第二个获取不起作用...我希望有人可以帮我。
谢谢,
克里斯
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我假设
possibleNumbers
的类型为ArrayList>
。因此,从possibleNumbers.get( y ).get( x )
返回的对象被视为Object
。如果你施放它会发生什么?I assume that
possibleNumbers
is of typeArrayList<ArrayList<Object>>
. And so, the object returned frompossibleNumbers.get( y ).get( x )
is considered to be anObject
. What occurs if you cast it?问题是您试图深入三层结构:
possibleNumbers
是一个ArrayList>
possibleNumbers.get (y)
是一个ArrayList
possibleNumbers.get(y).get(x)
是一个Object
您无法对
Object
调用get(0)
。The problem is that you are trying to go three levels deeps into a two-level structure:
possibleNumbers
is anArrayList<ArrayList<Object>>
possibleNumbers.get(y)
is anArrayList<Object>
possibleNumbers.get(y).get(x)
is anObject
You can't call
get(0)
on anObject
.您有一个包含列表的列表:
第一个 get 将返回这些列表之一:
第二个 get 将获取该列表的一个条目:
因此最终的get(0) 也是一个许多。
You have a list that contains lists:
The first get is going to return one of those lists:
The second get is going to get one entry of that list:
So that final
get(0)
is one too many.