如何在Java中将数组转换为集合
如何在Java中将数组转换为集合
我想在Java中将数组转换为Set。有一些显而易见的方法可以实现这一点(即通过循环),但我想要更简洁的方式,例如:
java.util.Arrays.asList(Object[] a);
有什么想法吗?
admin 更改状态以发布 2023年5月24日
SetmySet = new HashSet (); Collections.addAll(mySet, myArray);
这是JDK 6中的 Collections.addAll(java.util.Collection, T...) 方法。
另外:如果我们的数组中装满了原始类型数据怎么办?
在 JDK < 8 中,我会直接写一个明显的 for
循环,在一次遍历中完成包装和集合添加。
在 JDK >= 8 中,一种吸引人的选择是:
Arrays.stream(intArray).boxed().collect(Collectors.toSet());
就像这样:
SetmySet = new HashSet<>(Arrays.asList(someArray));
在Java 9+中,如果不可修改的集合是可以的:
SetmySet = Set.of(someArray);
在Java 10+中,泛型类型参数可以从数组组件类型中推断出来:
var mySet = Set.of(someArray);
要小心
如果someArray中有任何重复的元素,Set.of会抛出IllegalArgumentException异常。
详细信息请参见:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html#of(E...)