java - 在不拆分声明和初始化的情况下仅使用一个元素初始化列表的最佳方法

标签 java

我在代码中找到了这一行

 List<Element> elements = Arrays.asList(element);

并且发现我们只需要在一个元素上使用 Arrays.asList() 很奇怪。这让我开始思考是否有更好的方法来初始化仅包含一个元素的 ArrayList 而不会使其不可变。 据我所知,ArrayList 没有只需要一个元素的构造函数。

编辑 - 根据 Aomine 的回答,我发现这是目前完成我需要的唯一方法

List<Element> elements = Stream.of(element).collect(Collectors.toCollection(ArrayList::new));

最佳答案

在当前 Java 版本下您可以做的最好的事情是:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

...
//additional elements can be added (later) to all lists -> all are immutable (also to the 2nd!)

List<Element> elements = new ArrayList<>(Arrays.asList(element));
// or
List<Element> elements = new ArrayList<>(Collections.singletonList(element));
// or
List<Element> elements = Stream.of(element)
                               .collect(toCollection(ArrayList::new));

关于java - 在不拆分声明和初始化的情况下仅使用一个元素初始化列表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737925/

相关文章:

java - 为什么我不在每个惰性加载关系上都使用@BatchSize?

java - Groovy:无法将类 'null' 的对象 'null' 转换为类 'double' 。尝试改为 'java.lang.Double'

java - 如何链接使用 push() 方法保存的 firebase 中的两个子数据库?

java - 泛型类的概念问题

java - 如何在 Eclipse 编辑器中仅显示编译错误?

java - 管理 main 函数

java - 何时调用 Parcel.recycle()?

java - 如何从 Java 调用 cplex .mod 和 .data

java - if/switch 评估是原子的吗?

java - 如何在java中使用指定的分隔符分割字符串,同时忽略/?