2012-09-23 78 views
0

我正在尋找「正確」的方式來解決Java中的數組問題: 我需要一個整數數組,而不需要知道最大值。Java整型數組未知大小

對申報繞過限制當前的解決方案:

private ArrayList<Integer> myArray = new ArrayList<>(); 

問題,這種解決方案:

myArray.get(i); 

想返回一個字符串,而不是一個int,我需要進一步的計算中的int ... 我應該與其他東西比一個ArrayList或我缺少別的東西? (我猜最後一個選項......)

+6

爲什麼它返回一個字符串?它應該返回Integer。如果你做int x = myArray.get(i)你會得到你需要的int,因爲自動裝箱/拆箱 –

+1

我沒有看到ArrayList的任何問題 gtgaxiola

+1

'ArrayList <>()'沒有事件編譯。它應該是'ArrayList ()'。另外,'get()'絕對不會返回'String'! – verdesmarald

回答

1

是的,既然你不知道你想要你的陣列有多少物品,你應該使用ArrayList。此外myArray.get(i)確實會返回一個int,只是嘗試

ArrayList<Integer> list = new ArrayList<Integer>(); 
list.add(3); 
int a = myArray.get(0); // autoboxing 
System.out.println(a); 
+0

我重新輸入了有問題的代碼,現在確實可以編譯沒有任何問題。感覺有點愚蠢,如果它只是一個錯字... – Crimson

+0

@Crimson是的,這可能是它是什麼。但請記住:這發生在我們最好的人身上:-)。 – arshajii

0

ArrayList是正確的。它不會返回一個字符串,它會返回整數。雖然由於自動裝箱,你可以自動從它獲得一個int。

int x = myArray.get(i); 

返回一個Integer對象,並將包含的int傳遞給您的變量。

0

首先這是錯誤的的Java6

private ArrayList<Integer> myArray = new ArrayList<>(); 

應該

private ArrayList<Integer> myArray = new ArrayList<Integer>(); 

你反正得到一個編譯器錯誤等等我認爲它是一個錯字。 和你的代碼將絕對返回整數,如果你做

myArray.get(i); 
+1

不在JAVA 7你不會得到編譯器錯誤 – gtgaxiola

+0

@gtgaxiola很高興知道。我真的不使用Java 7 ..謝謝反正 – PermGenError