在Java中如何将数组转换为一组? | Java Debug 笔记

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动连接java

问题描述

在Java中如何将数组转换为一组git

我想将一个数组转换为java中的一个集合。有一些经常使用的方法能够作到这一点(即便用一个循环),但我想要一些更简洁的方法,如:java.util.Arrays.asList(Object[] a);,有其余方法吗?github


部分高赞回答

最高赞回答(1300赞)

用如下代码举例:数组

Set<T> mySet = new HashSet<>(Arrays.asList(someArray));
复制代码

在Java 9 中,若是是未经修改的集合(unmodifiable set)能够肯定的话,那么就能够改为这样:markdown

Set<T> mySet = Set.of(someArray);
复制代码

在Java 10 中,能够从数组组件类型推断出通用类型参数:oop

var mySet = Set.of(someArray);
复制代码

第二高赞回答(231赞)

Set<T> mySet = new HashSet<T>();
Collections.addAll(mySet, myArray);
复制代码

这是在JDK 6 中使用的方法Collections.addAll(java.util.Collection, T...)post

另外,若是咱们的数组充满了基元,怎么办?google

对于小于JDK 8 的 JDK 来讲,我将只会写明显的for循环来作包装,并会一次性添加到设置; 对于大于JDK 8 的 JDK 来讲,有一个很是有吸引力的选项:spa

Arrays.stream(intArray).boxed().collect(Collectors.toSet());
复制代码

第三高赞回答(124赞)

使用 Guava,你能够:翻译

T[] array = ...
Set<T> set = Sets.newHashSet(array);
复制代码

本文翻译自Stack Overflow。关于翻译文章,聆风也相对生疏,不免有错漏,欢迎各位大佬在评论区批评指正,谢谢!