3 回答

TA贡献1906条经验 获得超3个赞
像这样:
Set<T> mySet = new HashSet<>(Arrays.asList(someArray));
在Java 9+中,如果不可修改的设置是可以的:
Set<T> mySet = Set.of(someArray);
在Java 10+中,可以从数组组件类型推断泛型类型参数:
var mySet = Set.of(someArray);

TA贡献1834条经验 获得超8个赞
像这样:
Set<T> mySet = new HashSet<>(Arrays.asList(someArray));
在Java 9+中,如果不可修改的设置是可以的:
Set<T> mySet = Set.of(someArray);
在Java 10+中,可以从数组组件类型推断泛型类型参数:
var mySet = Set.of(someArray);

TA贡献1806条经验 获得超5个赞
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());
添加回答
举报