将Set <integer>转换为基本数组

时间:2016-05-21 14:35:22

标签: java data-structures collections set

我使用以下代码将Set转换为int []

Set<Integer> common = new HashSet<Integer>();
int[] myArray = (int[]) common.toArray();

我收到了以下错误:

 error: incompatible types: Object[] cannot be converted to int[]

如果不使用for循环逐个添加元素,那么进行转换最干净的方法是什么?谢谢!

3 个答案:

答案 0 :(得分:6)

Set<Integer> common = new HashSet<>();
int[] values = Ints.toArray(common);

答案 1 :(得分:5)

您通常会这样做:

Set<Integer> common = new HashSet<Integer>();
int[] myArray = common.stream().mapToInt(Integer::intValue).toArray();

答案 2 :(得分:2)

  

您无法将某些内容显式地转换为数组。

这样做:

Integer[] arr = new Integer[common.size()];
Iterator<Integer> iterator = common.iterator(); 
int i = 0;
while (iterator.hasNext()){
    arr[i++] = iterator.next();
}