繁体   English   中英

无法从Java中的深ArrayList获取值

[英]Can't get values from deep ArrayList in Java

我试图在我拥有的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);
                                 ^

我真的不知道为什么这第三次失败了,但是第二次成功了……我希望有人能帮助我。

谢谢,

克里斯

我假设possibleNumbers的类型为ArrayList<ArrayList<Object>> 因此,从possibleNumbers.get( y ).get( x )返回的对象被视为Object 如果投放它会怎样?

问题是,您试图将三个级别深入到一个两个级别的结构中:

possibleNumbers.get( y ).get( x ).get( 0 )
  • possibleNumbers是一个ArrayList<ArrayList<Object>>
  • possibleNumbers.get(y)是一个ArrayList<Object>
  • possibleNumbers.get(y).get(x)是一个Object

您不能在Object上调用get(0)

您有一个包含列表的列表:

possibleNumbers //ArrayList<ArrayList>

第一步将返回这些列表之一:

posibleNumbers.get(y) //-> ArrayList

第二个get将获得该列表的一个条目:

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

所以最终的get(0)太多了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM