如何使用条目/值初始化链接列表?

时间:2012-04-27 02:31:58

标签: java linked-list initialization

所以我知道如何拥有一个链表并使用add方法按条目输入条目。 但是,我不想按条目添加条目。有没有办法在列表中声明一个带有初始值的链表?

例如,如果我想拥有1.0&列表中的2.0是否可以在一行中完成? 类似的东西:

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

3 个答案:

答案 0 :(得分:63)

你可以这样做:

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

答案 1 :(得分:12)

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>实例。

答案 2 :(得分:5)

您还可以创建类似

的方法
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);
        }