【问题标题】:How to transform String[] into collection? [duplicate]如何将 String[] 转换为集合? [复制]
【发布时间】:2020-02-13 09:36:34
【问题描述】:

我试图在我的 Java 代码中获取一个字符串集合,所以我正在尝试这样的事情:

Collection c = new String[]{};

但我收到此错误:incompatible types: String[] cannot be converted to Collection.
有没有办法将 String[] 转换为 Collection 而无需执行以下操作:

var array = new String[]{"Apple", "Banana"};
var arrayList = new ArrayList<String>();
for (String fruit : array) {
    arrayList.add(fruit);
}
Collection c = arrayList;

【问题讨论】:

标签: java arrays collections


【解决方案1】:

数组不是集合。

你需要转换。

https://docs.oracle.com/javase/10/docs/api/java/util/Arrays.html

Arrays.asList(yourStringArray)

【讨论】:

    【解决方案2】:

    取决于集合。例如,如果您想要List,请使用Arrays::asList

    List<String> list = Arrays.asList(array);
    

    Collection:

    Collection<String> list = Arrays.asList(array);
    

    请注意,这不会返回新的List。它返回您传递给该方法的数组的固定大小视图,这意味着如果数组更改,列表也会更改,反之亦然。但是,您不能更改列表的长度。


    没有将 Array 转换为 Set 的方法,但您可以,例如,使用流来实现:

    Set<String> set = Arrays.stream(array).collect(Collectors.toSet());
    

    【讨论】:

      【解决方案3】:

      Java 8+

      String[] arr = { "A", "B", "C", "D" };
      List<String> list = Arrays.stream(arr).collect(Collectors.toList());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-29
        • 2017-10-31
        • 2013-03-28
        相关资源
        最近更新 更多