2017-03-07 13 views
1

我々はなぜArrayList <ArrayList <Integer>>と書くのですか?list = new ArrayList <>();

ArrayList<String> listname=new ArrayList<>; 

として、文字列の新しい配列リストを定義しますが、我々は整数の配列リストを定義する必要がある場合、なぜ我々はこのライン

ArrayList<ArrayList<Integer>> list = new ArrayList<>(); 
+1

整数のリストは、実際にはArrayList として宣言されています。 ArrayList >は、整数のリストを含むリストを宣言します。 – JimmyB

答えて

0

を書いている -

ArrayList<ArrayList<Integer>> list = new ArrayList<>(); 

ですこれに相当する -

ArrayList<ArrayList<Integer>> list = new ArrayList<>(); 

Java Genericsの型推論のためです。

型推論は、JVMがターゲットジェネリック型をコンテキストから自動的に推論するプロセスです。 official Java Tutorialから -

型推論呼び出しが該当しますタイプ 引数(または引数)を決定するためのJavaコンパイラの各メソッドの呼び出し を表示させると、対応する宣言があります。

最初の例では、新しく作成されたArrayList<>をタイプArrayList<String>の参照に割り当てます。コンテキストから、Javaコンパイラはnew ArrayList<>の型引数がStringであると判断できます。同様の推論が第2の例にも当てはまる。

関連する問題