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

204 阅读1分钟

本文正在参加「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。关于翻译文章,聆风也相对生疏,难免有错漏,欢迎各位大佬在评论区批评指正,谢谢!