如何用值声明一个 ArrayList? [复制]

Posted

技术标签:

【中文标题】如何用值声明一个 ArrayList? [复制]【英文标题】:How to declare an ArrayList with values? [duplicate] 【发布时间】:2014-03-08 22:33:26 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在 Java 9+ 中你可以这样做:

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

Java 8 使用 Stream:

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

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

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

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

ArrayList()

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

ArrayList(Collection&lt;? extends E&gt; c) (*)

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

ArrayList(int initialCapacity)

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

【讨论】:

在 LHS 上使用 List 而不是 ArrayList,如果您在那里绝对不需要 ArrayList。并使用 RHS 上的菱形运算符来避免警告。 短而干净的解决方案 为什么用 new ArrayList() 包装? List&lt;String&gt; x = Arrays.asList("xyz", "abc") 没问题 流解决方案优雅 重复文档的某些部分没有害处 - *** 可能更受欢迎。【参考方案2】:

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

例子:

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

(假设import static com.google.common.collect.Lists.newArrayList;

【讨论】:

【参考方案3】:

用途:

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

【讨论】:

感谢固定尺寸。在Set&lt;List&lt;T&gt;&gt; = Arrays.asList("a","b");contains 方法上速度更快【参考方案4】:

试试这个!

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

如果您不必调用特定方法,最好使用接口List 声明ArrayList

【讨论】:

【参考方案5】:

使用这个:

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

【讨论】:

【参考方案6】:

你可以这样做:

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

【讨论】:

以上是关于如何用值声明一个 ArrayList? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何用R将列中相同值的行值分组? [复制]

如何用另一个表的列值更新一个表的列值? [复制]

如何用另一个arraylist的内容替换arraylist的内容?

如何用eclipse打开并运行一个已经写好的java文件?

java中如何用json格式发送并接受arrayList?

如何用R从数据框中的各个列中找出最小值? [复制]