如何声明带有值的ArrayList? [重复]

问题描述 投票:0回答:6

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'];
    }
}
java arraylist initialization declare
6个回答
482
投票

在 Java 9+ 中,您可以使用

List.of
方便地生成不可修改的列表

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

Java 8 使用

Stream
:

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

或者,在 Java 16+ 中,更简单地使用

toList
:

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

当然,您可以使用接受

Collection
:

的构造函数创建一个新对象
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));

提示:docs包含非常有用的信息,通常包含您正在寻找的答案。例如,以下是

ArrayList
类的构造函数:

构造一个初始容量为 10 的空列表。

构造一个包含指定集合元素的列表,按照集合迭代器返回它们的顺序。

构造一个具有指定初始容量的空列表。


41
投票

用途:

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

31
投票

你可以这样做:

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

11
投票

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

示例:

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

(假设

import static com.google.common.collect.Lists.newArrayList;


10
投票
试试这个!

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

如果您不必调用特定方法,则使用接口

ArrayList

 声明 
List
 是一个很好的做法。


6
投票
使用这个:

ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));
    
© www.soinside.com 2019 - 2024. All rights reserved.