如何将数组转换为Java中的Set

我想将数组转换为Java中的Set。 有一些明显的方法可以做到这一点(即用一个循环),但我想要一些整洁的东西,比如:

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

有任何想法吗?


喜欢这个:

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

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

Set<T> mySet = Set.of(someArray);

在Java 10+中,泛型类型参数可以从数组元素类型中推断出来:

var mySet = Set.of(someArray);

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());

用番石榴你可以做到:

T[] array = ...
Set<T> set = Sets.newHashSet(array);
链接地址: http://www.djcxy.com/p/46355.html

上一篇: How to convert an Array to a Set in Java

下一篇: Most efficient way to increment a Map value in Java