Java 有多种实现 Set<Integer> 转 int[] 的方法,示例如下所示。
一、Iterator 迭代器遍历 Set,转为数组
package com.example.demo.test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
// 给 set 赋值,造测试数据
for (int i = 0; i < 10; i++) {
set.add(i);
}
int[] res = new int[set.size()];
// 迭代器遍历
Iterator<Integer> it = set.iterator();
int i = 0;
while (it.hasNext()) {
res[i] = it.next();
i++;
}
System.out.println(Arrays.toString(res));
}
}
二、for 循环遍历 Set,转为数组
package com.example.demo.test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
// 给 set 赋值,造测试数据
for (int i = 0; i < 10; i++) {
set.add(i);
}
// for 循环遍历
int[] res = new int[set.size()];
int i = 0;
for (Integer integer : set) {
res[i] = integer;
i++;
}
System.out.println(Arrays.toString(res));
}
}
三、通过 Set 的 toArray 方法,将 Set<Integer> 转为 Integer[] ,再通过 Arrays 的 stream 将 Integer[] 转为 int[]
package com.example.demo.test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
// 给 set 赋值,造测试数据
for (int i = 0; i < 10; i++) {
set.add(i);
}
Integer[] intArray = set.toArray(new Integer[0]);
int[] res = Arrays.stream(intArray).mapToInt(Integer::valueOf).toArray();
System.out.println(Arrays.toString(res));
}
}
四、用 Set stream 实现逐步转换为数组
package com.example.demo.test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
// 给 set 赋值,造测试数据
for (int i = 0; i < 10; i++) {
set.add(i);
}
int[] res = set.stream().mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(res));
}
}