如何将 String[] 转换为集合? [复制]

Posted

技术标签:

【中文标题】如何将 String[] 转换为集合? [复制]【英文标题】:How to transform String[] into collection? [duplicate] 【发布时间】: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;

【问题讨论】:

Arrays.asList,1秒就能google到... 你试过Arrays.asList(array)吗?见:geeksforgeeks.org/streams-arrays-java-8 【参考方案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());

【讨论】:

以上是关于如何将 String[] 转换为集合? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Android如何将int转换为String? [复制]

如何将 std::string 转换为大写? [复制]

如何将“char”转换为“std::string”? [复制]

如何将 Range<String.Index> 转换为 NSRange? [复制]

如何将 std::string 转换为 const char*? [复制]

如何将 std::string 转换为原始字符串? [复制]