如何使用值声明ArrayList?

alv*_*vas 189 java initialization arraylist declare

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'];
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 376

您可以使用接受以下内容的构造函数创建新对象Stream:

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

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


Java 8解决方案使用ArrayList(int initialCapacity):

Stream.of("xyz", "abc").collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • 为什么要用新的ArrayList <>()换行?`List <String> x = Arrays.asList("xyz","abc")`没关系 (4认同)
  • 在文档的重复部分没有坏处 - 无论如何可能更多访问StackOverflow. (4认同)
  • 如果你不是绝对需要一个ArrayList,那么在LHS而不是ArrayList上使用List.并使用RHS上的钻石操作员来避免警告. (3认同)
  • @mystdeim因为 Arrays.asList 返回一个不可修改的列表,这意味着尝试添加/删除元素会抛出 UnsupportedOperationException 。 (2认同)

Puc*_*uce 31

使用:

List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
Run Code Online (Sandbox Code Playgroud)

如果您以后不想在列表中添加新元素,还可以使用(Arrays.asList返回固定大小的列表):

List<String> x = Arrays.asList("xyz", "abc");
Run Code Online (Sandbox Code Playgroud)

注意:如果您愿意,也可以使用静态导入,那么它看起来像这样:

import static java.util.Arrays.asList;
Run Code Online (Sandbox Code Playgroud)

...

List<String> x = new ArrayList<>(asList("xyz", "abc"));
Run Code Online (Sandbox Code Playgroud)

要么

List<String> x = asList("xyz", "abc");
Run Code Online (Sandbox Code Playgroud)


Vim*_*era 26

你可以这样做:

List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
Run Code Online (Sandbox Code Playgroud)


Lii*_*Lii 11

番石榴库包含用于创建列表和其他收藏品,这使得这比使用标准库类更漂亮方便的方法.

例:

ArrayList<String> list = newArrayList("a", "b", "c");
Run Code Online (Sandbox Code Playgroud)

(这假定import static com.google.common.collect.Lists.newArrayList;)


Dro*_*gba 8

试试这个!

List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));
Run Code Online (Sandbox Code Playgroud)

如果您不必调用特定方法,则声明ArrayListwith接口是一个好习惯List.


Raj*_*ora 6

使用这个:

ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));
Run Code Online (Sandbox Code Playgroud)