所以我知道如何拥有一个链表并使用 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>
实例。
如果您使用的是 JDK9+,则可以使用如下List.of(...)
:
List<Double> myList = new LinkedList<>(List.of(10D, 11D));
你也可以创建这样的方法
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);
}