Java 中的 ArrayList 或 List 声明已提出疑问并回答了如何声明空
ArrayList
,但如何声明带有值的 ArrayList?
我尝试了以下方法,但它返回语法错误:
import java.io.IOException;
import java.util.ArrayList;
public class test {
public static void main(String[] args) throws IOException {
ArrayList<String> x = new ArrayList<String>();
x = ['xyz', 'abc'];
}
}
List.of
方便地生成不可修改的列表。
var x = List.of("xyz", "abc");
// 'var' works only for local variables
Stream
:
Stream.of("xyz", "abc").collect(Collectors.toList());
toList
:
Stream.of("xyz", "abc").toList());
Collection
: 的构造函数创建一个新对象
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
提示:docs包含非常有用的信息,通常包含您正在寻找的答案。例如,以下是
ArrayList
类的构造函数:
构造一个初始容量为 10 的空列表。
构造一个包含指定集合元素的列表,按照集合迭代器返回它们的顺序。
构造一个具有指定初始容量的空列表。
用途:
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
如果以后不想向列表中添加新元素,也可以使用(Arrays.asList返回固定大小的列表):
List<String> x = Arrays.asList("xyz", "abc");
注意:如果你愿意,你也可以使用静态导入,那么它看起来像这样:
import static java.util.Arrays.asList;
...
List<String> x = new ArrayList<>(asList("xyz", "abc"));
或
List<String> x = asList("xyz", "abc");
你可以这样做:
List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
Guava 库包含创建列表和其他集合的便捷方法,这使得它比使用标准库类更漂亮。
示例:
ArrayList<String> list = newArrayList("a", "b", "c");
(假设
import static com.google.common.collect.Lists.newArrayList;
)
List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));
如果您不必调用特定方法,则使用接口
ArrayList
声明
List
是一个很好的做法。
ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));