数组列表或Java中的列表声明已经询问并回答了如何声明一个空数组列表,但我如何声明一个带值的数组列表?

我尝试了以下,但它返回一个语法错误:

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'];
    }
}

在Java 9+中,你可以做:

var x = List.of("xyz", "abc");
// 'var' works only for local variables

Java 8使用流:

Stream.of("xyz", "abc").collect(Collectors.toList());

当然,你可以使用接受Collection的构造函数创建一个新对象:

List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));

提示:文档包含非常有用的信息,通常包含您正在寻找的答案。例如,下面是ArrayList类的构造函数:

ArrayList () 构造一个初始容量为10的空列表。 ArrayList集合(< ?c) (*) 按照指定集合的迭代器返回元素的顺序,构造一个包含指定集合元素的列表。 ArrayList (int initialCapacity) 构造具有指定初始容量的空列表。


你可以这样做:

List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));

试试这个!

List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));

如果不需要调用特定的方法,那么使用接口List声明ArrayList是一个很好的实践。


Use:

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"));

or

List<String> x = asList("xyz", "abc");

用这个吧:

ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));

Guava库包含用于创建列表和其他集合的方便方法,这比使用标准库类要漂亮得多。

例子:

ArrayList<String> list = newArrayList("a", "b", "c");

(这假设导入static com.google.common.collect.Lists.newArrayList;)