ArrayList or List declaration in Java质疑并回答了如何声明一个空的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'];
}
}
答案 0 :(得分:350)
在Java 10+中你可以这样做:
var x = List.of("xyz", "abc");
使用Stream
的Java 8:
Stream.of("xyz", "abc").collect(Collectors.toList());
当然,您可以使用接受Collection
的构造函数创建新对象:
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
提示:docs包含非常有用的信息,通常包含您正在寻找的答案。例如,以下是ArrayList
类的构造函数:
构造一个初始容量为10的空列表。
ArrayList(Collection<? extends E> c)
(*)
按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
答案 1 :(得分:26)
使用:
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");
答案 2 :(得分:23)
你可以这样做:
List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
答案 3 :(得分:11)
Guava library包含创建列表和其他集合的便捷方法,这使得它比使用标准库类更漂亮。
示例:
ArrayList<String> list = newArrayList("a", "b", "c");
(这假定为import static com.google.common.collect.Lists.newArrayList;
)
答案 4 :(得分:8)
试试这个!
List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));
如果您不必调用特定方法,则使用接口ArrayList
声明List
是一个好习惯。
答案 5 :(得分:6)
使用这个:
ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));