2011-11-30 76 views
16

在Java中製作數組列表的語法是什麼?Java中的數組列表

我曾嘗試以下:

List<int[]> A = new List<int[]>(); 

和很多其他的事情。

我需要能夠重新排列int數組,但是int數組的元素不需要改變。如果這不可能,爲什麼?

謝謝。

+1

你不能實例化一個'List',因爲它是一個接口。你想要數組列表,還是你用列表清單? – birryree

+1

我正在做LinkedLists LinkedLists來代替使用int []的解決方案。儘管你沒有實例化列表是正確的,但是當我發佈時,我忽略了這一點。抱歉。 – Chet

+1

聽起來像很多開銷。 – Woot4Moo

回答

39

首先,你不能這樣做new List();它是一個接口。

爲了使INT陣列的列表,這樣做:

List<int[]> myList = new ArrayList<int[]>(); 

附:按照註釋,包列表是java.util.List和ArrayList的java.util.ArrayList

+1

編譯器給我這個:類型列表不是通用的;它不能用參數參數化 Chet

+7

@Chet:你可能得到了錯誤的導入,那麼你應該使用'java.util.List',它肯定是* generic。 –

+3

@Chet你將需要導入java.util.List;以及java.util.ArrayList;用於運行我在這裏寫的代碼。 – gprathour

6
List<Integer[]> integerList = new ArrayList<Integer[]>(); 

使用對象,而不是原始的,除非它自動處理自動裝箱,這是Java 1.5的之前。

至於排序的時候:

Collections.sort(integerList); //Sort the entire List 

,併爲每個陣列(您想大概是什麼)

for(Integer[] currentArray : integerList) 
{ 
    Arrays.sort(currentArray); 
} 
+6

這裏不需要使用'Integer []'而不是'int []'。您不能將基本類型用作類型參數,但可以使用基本類型的*數組*。 –

+1

在這個簡單的例子中,我確定我會同意。在理想的世界裏,函數會採用這個:'Collection ',然後根據需要檢索值。 – Woot4Moo

+3

老實說,我認爲我們沒有足夠的信息讓你作出判斷。 –

3

列表是一個接口,而不是一類。你必須選擇什麼樣的列表。在大多數情況下,選擇ArrayList。

List a = new ArrayList(); 

你已經提到過你想存儲一個int數組,所以你可以指定一個列表包含的類型。您可以擁有「int []」的集合(如列表),但不能擁有「int」的集合。這是因爲數組是對象,但「int」是一個基元。