如何在Java中将数组转换为集
2022-08-31 04:03:49
我想在Java中将数组转换为Set。有一些明显的方法可以做到这一点(即使用循环),但我想要一些更整洁的东西,比如:
java.util.Arrays.asList(Object[] a);
有什么想法吗?
我想在Java中将数组转换为Set。有一些明显的方法可以做到这一点(即使用循环),但我想要一些更整洁的东西,比如:
java.util.Arrays.asList(Object[] a);
有什么想法吗?
喜欢这个:
Set<T> mySet = new HashSet<>(Arrays.asList(someArray));
在 Java 9+ 中,如果不可修改的集合是可以的:
Set<T> mySet = Set.of(someArray);
在 Java 10+ 中,可以从数组组件类型推断出泛型类型参数:
var mySet = Set.of(someArray);
小心
Set.of 抛出 IllegalArgumentException - 如果 someArray 中有任何重复的元素。查看更多详细信息: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html#of(英...
Set<T> mySet = new HashSet<T>();
Collections.addAll(mySet, myArray);
这是JDK 6的Collections.addAll(java.util.Collection,T...)。
另外:如果我们的数组充满了基元怎么办?
对于 JDK < 8,我只需编写明显的循环即可在一次传递中完成包装和添加到集。for
对于 JDK >= 8,一个有吸引力的选项是这样的:
Arrays.stream(intArray).boxed().collect(Collectors.toSet());