本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
问题描述
在Java中如何将数组转换为一组 我想将一个数组转换为java中的一个集合。有一些常用的方法可以做到这一点(即使用一个循环),但我想要一些更简洁的方法,如:
java.util.Arrays.asList(Object[] a);
,有其他方法吗?
部分高赞回答
最高赞回答(1300赞)
用以下代码举例:
Set<T> mySet = new HashSet<>(Arrays.asList(someArray));
在Java 9 中,如果是未经修改的集合(unmodifiable set)可以确定的话,那么就可以改成这样:
Set<T> mySet = Set.of(someArray);
在Java 10 中,可以从数组组件类型推断出通用类型参数:
var mySet = Set.of(someArray);
第二高赞回答(231赞)
Set<T> mySet = new HashSet<T>();
Collections.addAll(mySet, myArray);
这是在JDK 6 中使用的方法Collections.addAll(java.util.Collection, T...)
另外,如果我们的数组充满了基元,怎么办?
对于小于JDK 8 的 JDK 来说,我将只会写明显的for循环来做包装,并会一次性添加到设置; 对于大于JDK 8 的 JDK 来说,有一个非常有吸引力的选项:
Arrays.stream(intArray).boxed().collect(Collectors.toSet());
第三高赞回答(124赞)
使用 Guava,你可以:
T[] array = ...
Set<T> set = Sets.newHashSet(array);
本文翻译自Stack Overflow。关于翻译文章,聆风也相对生疏,难免有错漏,欢迎各位大佬在评论区批评指正,谢谢!