Java快速数组列表

时间:2011-10-14 12:16:53

标签: java arrays arraylist

我有一个非常简单的问题:

如何在Java上使这段代码更简单:

ArrayList<String> s = new ArrayList<String>();
s.add("str1");
s.add("str hello");
s.add("str bye");
//...

类似的东西:

ArrayList<String> s = {"a1", "str", "mystr"};

或那:

ArrayList<String> s = new ArrayList<String>("a1", "str", "mystr");

或那:

ArrayList<String> s = new ArrayList<String>();
s.addAll("a1", "str", "mystr");

或那:

ArrayList<String> s = new ArrayList<String>();
s.addAll(new ArrayElements("a1", "str", "mystr"));

我只想要语法提示。感谢。

7 个答案:

答案 0 :(得分:29)

List<String> s = Arrays.asList("a1", "str", "mystr");

答案 1 :(得分:22)

怎么样:

ArrayList<String> s = new ArrayList<String>();
Collections.addAll(s, "a1", "str", "mystr");

答案 2 :(得分:5)

List<String> s = Arrays.asList(new String[] {"a1", "str", "mystr"});

答案 3 :(得分:5)

你可以使用双重支撑:

ArrayList<String> s = new ArrayList<String>()
{{
    add("str1");
    add("str hello");
    add("str bye");
    //...
}};

答案 4 :(得分:4)

我会使用Guava及其精彩的Lists类:

List<String> list = Lists.newArrayList("a1", "str", "mystr");

答案 5 :(得分:2)

在Java 8之前或之后,您可以编写:

ArrayList<String> s = 
    new ArrayList<>(Arrays.asList("str1", "str hello", "str bye"));

从Java 8开始,您可以编写:

ArrayList<String> s =
    Stream.of("str1", "str hello", "str bye")
        .collect(Collectors.toCollection(ArrayList::new));

使用Eclipse Collections,您可以编写以下内容:

ArrayList<String> s =
    Lists.mutable.with("str1", "str hello", "str bye")
        .into(new ArrayList<>());

如果可以使用List代替ArrayList

List<String> s = Lists.mutable.with("str1", "str hello", "str bye");

注意:我是Eclipse Collections的提交者。

答案 6 :(得分:0)

如果您使用的是Java 9,则可以使用List.of()

List<String> s = List.of("str1", "str hello", "str bye");

但这将是一个不可变的列表。如果你需要一个可变的Arraylist:

ArrayList<String> s = new ArrayList<>(List.of("str1", "str hello", "str bye"))