如何将 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[] 转换为集合? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将“char”转换为“std::string”? [复制]
如何将 Range<String.Index> 转换为 NSRange? [复制]