将
Set
字符串转换为 String[]
数组没有问题,但将 Set
的 Integer
转换为 int[]
数组时遇到问题。
如何将
Integers
转换为其相应的原语?
我似乎找不到任何相关问题。有什么可以帮助的快速建议吗?
有时,无法使用自动装箱,就像数组的情况一样。我不认为整数数组会自动转换为整数数组。
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
。
使用 java 8:
Set<Integer> set = new HashSet<>();
// TODO: Add implement for set
int[] array = set.stream().mapToInt(Integer::intValue).toArray();
我想问题是
Set<Integer>.toArray
转换为Integer[]
,而不是int[]
。所以你没有简单的方法:你需要手动迭代集合并将其元素添加到 int 数组中。在 Java 5 及更高版本中,通过自动装箱处理将单个 Integer
转换为 int
。
假设自动拆箱,这应该可行!
Set<Integer> myIntegers; // your set
int[] ints = new int[myIntegers.size()];
int index = 0;
for(Integer i : myIntegers){
ints[index++] = i;
}
您可以致电
Integer.intValue();
功能...
让我知道您需要什么的更多细节:)
如果您使用 Java 5+ Autoboxing 应该注意这个......!
您遇到什么错误?
编辑:好的我明白了..
就像其他人说的:
在 Set 上循环并将 Integer 放入 int[] 中,自动装箱应该将其转换。