2013-09-27 181 views
0

我有一個數組名稱爲「asset」,數字爲4。 然後我將它轉換成存儲在arraylist中。 然後用arraylist複製到另一個數組。 這個算法是否正確? 加入5陣列後,應能顯示5號現在Java Array到ArrayList到Array

List assetList = new ArrayList(); 
String[] asset = {"1", "2", "3", "4"}; 

Collections.addAll(assetList, asset); 

assetList.add("5"); 

String [] aListToArray = new String[assetList.size()]; 
aListToArray.toArray(aListToArray); 
+1

定義是正確的。你的真正目標是什麼?獲取數組的副本?在數組和ArrayList之間轉換以進行賦值? – James

+1

你可能會做一些類型安全,如列表,但無論如何,我不想得到你爲什麼要應付一個清單,並將它們複製回去......如果它是一套我會理解 – AurA

+0

它符合我的要求 –

回答

2

您需要將此行

aListToArray.toArray(aListToArray); // aListToArray to aListToArray itself? This would have given a compilation error 

改變這種

assetList.toArray(aListToArray); // assetList to aListToArray is what you need. 
1

使用只是Arrays.asList(asset);

0

你可以做一些簡化:

List assetList = new ArrayList(); 
String[] asset = {"1", "2", "3", "4"}; 

assetList.addAll(asset); 

assetList.add("5"); 

String [] aListToArray = assetList.toArray(aListToArray); 

總體而言,代碼是正確的。然而,如果你想擁有一個「動態數組」或者一組大小不同的項目,那麼不要費勁地試圖將某些東西保持爲數組形式。數組列表將工作正常。

+0

如何讓第一個4的數字被修復,其餘的被動態添加 – BeyondProgrammer

+0

如果你的意思是前4個值不可更改,那麼如果你知道它們是什麼,你爲什麼要把它們放在一個集合中?這個服務的目的是什麼? – Rogue