2017-11-15 6 views
0

https://imgur.com/nb6sjuKジャワ - のArrayList <>とLinkedListは<> - クラス識別子

として、私は、識別子は、この例では何をするか、それを得ることはありません、私はプログラミングに新たなんだと私は理解してArrayList<String>が作成することです文字列のリストはLinkedList<String>と同じですが、識別子のクラスをプッシュするとどうなりますか?LinkedList<Song> - Songはクラスです。前もって感謝します。

public class Main { 
    private static ArrayList<Album> albums = new ArrayList<Album>(); 

    LinkedList<Song> playlist = new LinkedList<Song>(); 

    public static void main(String[] args) { 


    // write your code here 

     Album album = new Album("StormBringer" , "Deep Purple"); 
     album.addSong("Stormbringer" , 4.6); 
     album.addSong("Love don't mean a thing" , 4.22); 
+2

文字列は、Song – Eran

+0

と同じクラスです。https://docs.oracle.com/javase/8/docs/technotes/guides/language/generics.html – Yash

+0

コード例をテキストではなく画像として追加してください。これにより、読みやすくなります。 – Simulant

答えて

1

identifierclassをプッシュするとどうなりますか?

は、まず第一に、それはTypeの識別子ではありません、これは、あなたが<>Typeを渡す方法Generics作品なので、コンパイラは、このジェネリッククラス(ここではコレクション)の予想Typeを知っています。そして、コレクションList,Set ... Genericsの実装の良い例です。

などSongStringjava.langパッケージで事前に定義されたクラスであるクラスがあるので、あなたはあなたのコレクションにクラスを渡したときに、コンパイラは、このコレクション内のすべての要素がこのTypeであることを期待しています。あなたのコードでたとえば

LinkedList<Song> playlist = new LinkedList<Song>(); 

すべてplaylist項目がSongクラスのインスタンスであると予想されます。

+1

ありがとう、それは今や意味がある –

+0

@TornikeSheliaあなたが大喜びです。 –

2

StringSongようなクラスでもクラスです。つまり、あなたはListにこのクラスのオブジェクトだけを挿入できます。型が一致しないため、他のクラスのオブジェクトは追加できません。そうしようとすると、コンパイルエラーが発生します。あなたのリストはタイプ・セーブです。この機能はgenericsと呼ばれます。

関連する問題