簡體   English   中英

如何使用其中的條目/值初始化 LinkedList?

[英]How can I initialize a LinkedList with entries/values in it?

所以我知道如何使用鏈表並使用 add 方法按條目輸入條目。 但是,我不想按條目添加條目。 有沒有辦法在列表中聲明具有初始值的鏈表?

例如,如果我想在列表中包含 1.0 和 2.0,我可以在一行中做些什么嗎? 就像是:

List<Double> temp1 = new LinkedList<Double>(1,2);

你可以這樣做:

List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));

LinkedList具有以下構造函數,它接受Collection類型的參數:

public LinkedList(Collection<? extends E> c)

這個構造函數“構造一個包含指定集合元素的列表,按照集合的迭代器返回的順序。”

因此,您可以使用此構造函數來聲明LinkedList並在聲明時使用值對其進行初始化。 您可以提供任何Collection<Double>類型的實例。

如果您只有一組值而不是Collection對象,那么您可以使用java.util.Arrays類,該類具有靜態asList()方法,該方法將提供的一組值轉換為List並返回。 請參閱下面的示例:

 List<Double> list = new LinkedList<Double>(Arrays.asList(1.2,1.3,3.2));

如果您需要List<Double>的實例,那么您必須提供帶有小數位的值,否則您將獲得帶有這些值的List<Integer>實例。

您還可以創建方法,如

static <T> LinkedList<T> createLinkedList(T...elements) {
    LinkedList<T> newList = new LinkedList<T>();
    for (T el : elements) {
        newList.add(el);
    }

    return newList;
}

並將其用於:

        LinkedList<Integer> a = createLinkedList(1, 2, 3);

        for (Integer item : a) {
            System.out.println(item);
        }

如果您使用的是 JDK9+,則可以使用List.of(...)例如:

List<Double> myList = new LinkedList<>(List.of(10D, 11D));

暫無
暫無

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

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