2011-10-19 27 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)是一個太多。