2011-10-19 95 views
0

我尝试存储并获取ArrayList中的数字。我有这个在我的课:无法从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有一对情侣在变量“列表”号,设置该列表可能的数字:

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

你能更准确地描述一下可能的数字应该/包含什么?我不确定,您的数据结构适合您的需求。 “存储并获取ArrayList中的数字”将导致ArrayList ... –

回答

2

我认为possibleNumbersArrayList<ArrayList<Object>>类型。因此,从possibleNumbers.get(y).get(x)返回的对象被认为是Object。如果你施放它会发生什么?

+1

谢谢你让我意识到我使用的问题 private ArrayList > possibleNumbers = new ArrayList >(); 现在虽然它的丑陋,它完全有效! – Chris

2

的问题是,你试图去三个层次深处为两层结构:

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

您不能通过Object致电get(0)

+0

静音downvoter罢工agian! – NPE

+0

最近有什么奇怪的downvotes?这是一个完美的,格式良好的答案。 +1赔偿。 –

+0

@向下选举人可以请你描述一下原因+1 – mKorbel

0

您有一个包含列出一个清单:

possibleNumbers //ArrayList<ArrayList> 

首先得到的是将要返回这些列表中的一个:

posibleNumbers.get(y) //-> ArrayList 

第二得到的是要得到该列表中的一个条目:

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

因此,最终的get(0)是一个太多。