将整数集转换为int []数组的问题

L-S*_*els 6 java collections

我没有问题将一组字符串的String []数组,但我用转换组整数的为int []数组这样做有问题.如何将整数转换为原始?

我似乎无法找到任何相关问题.有什么快速建议可以帮忙吗?

有时,无法使用自动装箱,就像阵列一样.我不认为整数数组会自动转换为整数数组.

Tho*_*mas 16

string[]不存在,我想你的意思是String[].

要转换为a Set<Integer>,int[]您必须手动迭代该集合.

像这样:

Set<Integer> set = ...;

int[] arr = new int[set.size()];

int index = 0;

for( Integer i : set ) {
  arr[index++] = i; //note the autounboxing here
}
Run Code Online (Sandbox Code Playgroud)

请注意,集合没有任何特定的顺序,如果顺序很重要,则需要使用 SortedSet.


Kev*_*ion 13

这就是为什么Guava有一个Ints.toArray(Collection<Integer>)方法,返回int[].


小智 9

使用 Java 8:

Set<Integer> set = new HashSet<>(); 
// TODO: Add implement for set

int[] array = set.stream().mapToInt(Integer::intValue).toArray();
Run Code Online (Sandbox Code Playgroud)

  • 这是一个已有 7 年历史的问题,您的答案似乎没有添加其他答案未涵盖的任何内容。回答你能回答的问题很好,但也许把你的时间花在最近的(最好是未回答的)问题上。如果您为已经有答案的问题添加答案,请尝试确保它涵盖了要点,而其他答案则没有。 (3认同)
  • 这是我发现的唯一的单行纯 Java 解决方案。它确实添加了其他答案未涵盖的内容。我认为为旧问题提供新答案并没有什么错,特别是因为它在这种情况下对我有帮助。 (2认同)

Moz*_*ath 0

你可以打电话给

Integer.intValue();
Run Code Online (Sandbox Code Playgroud)

功能...

让我知道您需要什么的更多细节:)