簡體   English   中英

Java-ArrayList <>和LinkedList <>-類作為標識符

[英]Java - ArrayList<> and LinkedList<> - class as an identifier

https://imgur.com/nb6sjuK

我不明白標識符在本示例中的作用,這是編程的新手,我意識到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);

String是一個類,就像Song也是一個類。 這意味着您只能將此類的對象插入List 不允許添加其他類的對象,因為類型不匹配。 嘗試這樣做將導致編譯錯誤。 因此,您的列表是類型保存。 此功能稱為泛型

但是,當您在identifier推送class時會發生什么?

首先,這不是它的一個標識符Type ,這該是多么泛型工作,你傳遞一個Type之間的<>所以編譯器知道預期的Type為這個泛型類(這里的集合)。 並且Collections ListSet ...是泛型實現的好例子。

就像Song是一個類一樣, String也是java.lang包中的預定義類,因此當您將一個類傳遞給集合時,編譯器將期望此集合中的所有元素都屬於此Type

例如在您的代碼中:

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

所有playlist項均應為Song類的實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM