为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

GCT1015 2019-09-18 14:43:56
我想将数组转换为Java中的Set。有一些明显的方法可以做到这一点(即使用循环),但我想要一些更整洁的东西,如:java.util.Arrays.asList(Object[] a);有任何想法吗?
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

像这样:


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

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


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

在Java 10+中,可以从数组组件类型推断泛型类型参数:


var mySet = Set.of(someArray);


查看完整回答
反对 回复 2019-09-18
?
MMMHUHU

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


查看完整回答
反对 回复 2019-09-18
?
忽然笑

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


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 10394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信