2011-11-30 9 views
16

Javaで配列のリストを作るための構文は何ですか?Javaでの配列のリスト

私は次のことを試してみました:

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

や他のものがたくさん。

int配列の順序を変更できる必要がありますが、int配列の要素を変更する必要はありません。これが不可能な場合、なぜですか?

ありがとうございます。

+1

'List'をインスタンス化することはできません。配列のリストが必要ですか、リストのリストでうまくいきますか? – birryree

+1

私はint []を使用したソリューションの代わりにLinkedListsのLinkedListsをやっています。あなたはリストをインスタンス化しないことについて正しいですが、投稿したときにそれを見落としました。ごめんなさい。 – Chet

+1

オーバーヘッドのような音がします。 – Woot4Moo

答えて

39

まず、new List();はできません。インターフェイスです。

このような何か、int型の配列のリストを作成するには:

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

P.S.をコメントを1として、一覧のパッケージはjava.util.Listと、それは自動的にオートボクシングを扱うよう、これはJavaの1.5以前でない限り、ArrayListのjava.util.ArrayList

+1

コンパイラは私にこのことを教えてくれます:List型は一般的ではありません。 Chet

+7

@Chet:あなたは間違ったインポートをしているでしょう - あなたは 'java.util.List'を使うべきです。 –

+3

@Chetあなたはjava.util.Listをインポートする必要があります。 java.util.ArrayListと同様です。私がここに書いたコードを実行するためのものです。 – gprathour

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

は、オブジェクトの代わりに、プリミティブを使用するためのものです。

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

と各アレイの(あなたが欲しい、おそらく何)

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

ここで 'int []'の代わりに 'Integer []'を使う必要はありません。型引数としてプリミティブ型を使うことはできませんが、プリミティブ型の*配列*を使うことができます。 –

+1

この簡単な例で私は同意するでしょう。理想的な世界では、この関数は 'Collection 'をとり、必要に応じて値を取得します。 – Woot4Moo

+3

正直言って、あなたが判断を下すのに十分な情報はほとんどないと思います。 –

3

リストはインターフェースではなく、クラスです:限りソートが行くように

。どのような種類のリストを選択する必要があります。ほとんどの場合、ArrayListが選択されます。

List a = new ArrayList(); 

あなたはint配列を格納したいと言ってきたので、リストに含まれる型を指定できます。

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

"int []"のコレクション(リストなど)を持つことができますが、 "int"のコレクションを持つことはできません。これは、配列はオブジェクトであるが、 "int"はプリミティブであるためです。

関連する問題