簡體   English   中英

類似於Java中的C#.NET泛型列表

[英]Something similar to C# .NET Generic List in java

Java中的ac#.net通用列表將如何?

像這樣的東西:

public class ClientList : List<Client> { }

Nikil的答案很完美,我只想添加到想從列表中創建課程的任何人:

public class ClientList extends ArrayList<Client>

可以泛化Java的List接口(java.util.List)。 換句話說,可以為List實例指定一種類型,因此只能插入該類型的實例並從該List中讀取。 這是一個例子:

List<String> list = new ArrayList<String>();

現在,此列表僅針對String實例,這意味着只能將String實例放入此列表。 如果您嘗試在此列表中添加其他內容,編譯器將抱怨。

通用類型檢查僅在編譯時存在。 在運行時,可以對代碼進行調整,以使字符串列表具有插入了字符串的其他對象。 但是,這是一個壞主意。

訪問通用列表

您可以像這樣獲取並插入通用列表的元素:

List<String> list = new ArrayList<String>();

String string1 = "a string";
list.add(string1);

String string2 = list.get(0);

請注意,通常不需要鑄造從List.get()方法調用獲得的對象。 編譯器知道此List只能包含String實例,因此不需要強制轉換。

迭代通用列表

您可以使用迭代器來迭代通用列表,如下所示:

List<String> list = new ArrayList<String>();

Iterator<String> iterator = list.iterator();

while(iterator.hasNext()){
    String aString = iterator.next();
}

請注意,不必強制轉換從下一個調用iterator.next()返回的對象。 因為List是泛型的(具有類型),所以編譯器知道它包含String實例。 因此,即使它來自Iterator,也不必強制轉換從它獲得的對象。

您還可以使用新的for循環,如下所示:

List<String> list = new ArrayList<String>();

for(String aString : list) {
    System.out.println(aString);
}

注意,如何在for循環的括號內聲明String變量。 對於每次迭代(列表中的每個元素),此變量都包含當前元素(當前字符串)。

暫無
暫無

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

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