如何在Java中将数组转换为集合

24 浏览
0 Comments

如何在Java中将数组转换为集合

我想在Java中将数组转换为Set。有一些显而易见的方法可以实现这一点(即通过循环),但我想要更简洁的方式,例如:

java.util.Arrays.asList(Object[] a);

有什么想法吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

Set mySet = 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());

0
0 Comments

就像这样:

Set mySet = new HashSet<>(Arrays.asList(someArray));

在Java 9+中,如果不可修改的集合是可以的:

Set mySet = 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...)

0