Java int[] 数组到 HashSet<Integer>

标签 java generics collections

我有一个 int 数组:

int[] a = {1, 2, 3};

我需要一个类型的集合:

Set<Integer> s;

如果我执行以下操作:

s = new HashSet(Arrays.asList(a));

当然,它认为我的意思是:

List<int[]>

而我的意思是:

List<Integer>

这是因为 int 是一个原语。如果我使用了字符串,一切都会起作用:

Set<String> s = new HashSet<String>(
    Arrays.asList(new String[] { "1", "2", "3" }));

如何轻松、正确、简洁地从:

A) int[] a...

B) Integer[] a ...

谢谢!

最佳答案

使用流:

// int[] nums = {1,2,3,4,5}
Set<Integer> set = Arrays.stream(nums).boxed().collect(Collectors.toSet())

关于Java int[] 数组到 HashSet<Integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030661/

相关文章:

Java 11 TLDScanner 未加载系统 TLD

java - ActiveMQ 故障转移传输 - 为什么有这么多连接?

java - 具有继承和泛型的流畅 API

java - 何时使用 Set vs. Collection?

java - JSP for 循环根据记录数插入页脚

java - JFreechart XYline 连接数据库

java - 如何访问java中对象的通用数组列表中的项目字段?

C# 反射(reflect)未知的子类型

php - Laravel LengthAwarePaginator 返回的数据不在单个对象中

Java集合GC