我将一组字符串转换为string []数组没有问题,但我在将一组整数转换为一个int []数组时遇到了问题。 如何将整数转换为原语?
我似乎无法找到任何相关问题。任何可以提供帮助的快速建议?
有时,无法使用自动装箱,就像阵列一样。我不认为整数数组会自动转换为整数数组。
答案 0 :(得分:15)
string[]
不存在,我想你的意思是String[]
。
要将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
}
请注意,套装没有任何特定订单,如果订单很重要,则需要使用SortedSet
。
答案 1 :(得分:12)
这就是为什么Guava有一个Ints.toArray(Collection<Integer>)
方法,返回int[]
。
答案 2 :(得分:2)
使用Java 8:
Set<Integer> set = new HashSet<>();
// TODO: Add implement for set
int[] array = set.stream().mapToInt(Integer::intValue).toArray();
答案 3 :(得分:1)
我想问题是Set<Integer>.toArray
转换为Integer[]
,而不是int[]
。所以你没有简单的方法:你需要手动迭代集合并将其元素添加到int数组中。将个人Integer
转换为int
由Java 5及更高版本中的自动装箱处理。
答案 4 :(得分:1)
这应该有效,假设自动取消装箱!
Set<Integer> myIntegers; // your set
int[] ints = new int[myIntegers.size()];
int index = 0;
for(Integer i : myIntegers){
ints[index++] = i;
}
答案 5 :(得分:0)
你可以打电话给
Integer.intValue();
...功能
lemme了解您需要的更多细节:)
答案 6 :(得分:0)
如果你使用Java 5+ Autoboxing应该照顾这个......!
你得到什么错误?
编辑:好的,我看..
像其他人说的那样:
循环你的Set并将Integer放在int []中,autoboxing应该转换它。