2016-11-12 20 views
0

もっと効率的で正しいコードのために私がしばらく持っていたこの質問を明確にしたかっただけです。ArrayListにはどのようなクラスを使用しますか?

私はオブジェクトの配列リストにオブジェクトを持つクラス 'Student'を与えました。クラスと呼ばれる別のクラスがあります。このクラスには、Studentクラスの同じオブジェクトへの参照の配列リストがあります。

私はまた質問の他の部分は、私は人々がのArrayList<Student> myStudents = new ArrayList<>(); どこ後半としてのArrayListを宣言見てきている

ArrayList<Student> myStudents = new ArrayList<Student>(); 

または

ArrayList<Class> myStudents = new ArrayList<Class>(); 

として「クラスのクラスを宣言する必要がありますニンジンは空のままです。違いはどういう意味ですか?これは、配列リストがどのクラスのオブジェクトでもないことを意味しますか?

はお時間をどうもありがとうございますし、それはあなたではなく、あなたがそれを使用しているところよりも、リストに保存したいのかに依存 乾杯

+0

ニンジン? xaxaxa epic!。あなたはダイヤモンドオペレーターを意味します。を見て:http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7#4167148 – GOXR3PLUS

+0

私は長い時間前にビデオを見て覚えている誰かがニンジンとしてそれを言い、それが議論の余地があるか何かを付け加えた。私はこれで占領されたので、正しい言葉を今見上げる気にしなかった。とにかく、私はこれが私に見える愚か者を理解します:} – eArshdeep

+0

私はそれを意味しません。ちょうどとても面白かった:) – GOXR3PLUS

答えて

0

を助けます。スチューデントオブジェクトを保存する場合は、ArrayList<Student>()を使用します。

右側で省略された型は型推論と呼ばれます(Java 7で追加されました)。これは、右側の型パラメータが左の代入変数の型から推測されることを意味します。よりクリーンな方法でコードを書くことができます。例えば、以下の書き込み

は簡単です:

List<Some<Type<Another>>> var = new ArrayList<Some<Type<Another>>>(); 
0

技術的には、どちら:より

List<Some<Type<Another>>> var = new ArrayList<>(); 

あなたはしたいと思う:

List<Student> myStudents = new ArrayList<>(); 

あなたがArrayListClassを持つオブジェクトを作成する場合はArrayListStudentを持つオブジェクトと

List<Class> myClasses = new ArrayList<>(); 

を作成したい場合。

1)変数名に注意してください。

2)常にインターフェイスにコードを書き込むようにしてください(左側はで、ArrayListではありません)。後でArrayListの特定の実装に依存していないので、これにより柔軟性が大幅に向上します。この点はとても強力です! Listのオブジェクトを受け入れるメソッドシグネチャを記述し、次にArrayList,LinkedListまたはStack、またはListを実装するクラスを使用できます。 ArrayListの使用方法によっては、代わりにCollectionインターフェイスで十分です。

ダイヤモンド演算子を使用すると、コンパイラは型引数の値をすべて入力せずに推論することができます。旧バージョンのJavaの下位互換性のために必要です。

パフォーマンスの最適化の一般的な方法として、可能であればArrayListの初期容量を指定することもできます。だから、あなたは5つのクラスがあることを知っているなら、あなたはそうするでしょう:

List<Class> myClasses = new ArrayList<>(5); 
関連する問題