2016-04-21 67 views
1

是否有可能將兩個ArrayLists的數組初始化爲Java中的類字段?Java:在一行中初始化兩個ArrayList的數組

現在我有以下。在域聲明:

public ArrayList someArray[] = new ArrayList[2]; 

和方法後來在一個實際的分配:

someArray[0] = new ArrayList<String>(); 
someArray[1] = new ArrayList<String>(); 
+0

使用'for'循環。 – Satya

+0

是的,它可以完成!你的代碼看起來正確。數組只保存其中對象的引用,所以對象本身可以是任何東西 –

回答

3

這是可以做到:

public ArrayList<String[]>[] 
    someArray = new ArrayList[] {new ArrayList<String[]>(),new ArrayList<String[]>()}; 

編輯澄清OP之後。

+0

由於某些原因,這不起作用。 – TranslucentCloud

+0

@TranslucentCloud什麼不行?注意它是'new ArrayList []',而不是'new ArrayList []',因爲你不能實例化一個泛型類型的數組,但是最好讓這個變量本身的類型是通用的。 – Eran

+0

如果我是正確的,那是因爲你不能創建一個鍵入對象的數組。在這裏,您正在嘗試執行'ArrayList []'(在聲明中)。它應該簡化爲'ArrayList []'工作,如[Manu AG的答案](http://stackoverflow.com/a/36761798/1734119)。在這種情況下,通用參數的丟失一直困擾着我。 – Chop

3

試試這個:

public ArrayList[] arrayOfArrayLists = new ArrayList[]{new ArrayList<String>() , new ArrayList<String>()}; 
+0

這工作。謝謝。 – TranslucentCloud

+1

強烈建議不要使用原始類型,如JLS所述 - 「原始類型的使用僅允許作爲遺留代碼兼容性的讓步。強烈建議在將泛型引入Java編程語言之後編寫的代碼中使用原始類型。未來版本的Java編程語言可能會禁止使用原始類型 – Eran