将字符串集转换为字符串[]数组没有问题,但是我在将整数集转换为int []数组时遇到问题。 如何将整数转换为其原始值?将整数集转换为int的问题[]数组
我似乎无法找到任何相关的问题。任何可以提供帮助的快速建议?
有时,不能使用自动装箱,就像数组一样。我不认为一个整数数组会自动转换为一个整数数组。
将字符串集转换为字符串[]数组没有问题,但是我在将整数集转换为int []数组时遇到问题。 如何将整数转换为其原始值?将整数集转换为int的问题[]数组
我似乎无法找到任何相关的问题。任何可以提供帮助的快速建议?
有时,不能使用自动装箱,就像数组一样。我不认为一个整数数组会自动转换为一个整数数组。
可以拨打
Integer.intValue();
功能...
还是让我知道你需要什么:)
谢谢Piyush。我有一个去使用这个功能。 –
balus得到了正确的队友!请接受答案,如果你喜欢它:) – MozenRath
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
。
是的大声笑。那是我的意思托马斯。抱歉错字错误。谢谢你。 –
由于某种原因,它不允许每个循环中的元素类型都是整数。 –
然后它不是'Set
如果您使用Java 5+ Autoboxing应该照顾这个......!
你会得到什么错误?
编辑:确定我看到..
像其他的说:你的设置
循环,只是把整数INT []内,自动装箱应该转换。
我想问题是,Set<Integer>.toArray
转换为Integer[]
,而不是int[]
。所以你没有简单的方法:你需要手动迭代整个集合并将其元素添加到int数组中。将个人Integer
转换为int
由Java 5及以上版本的自动装箱处理。
这应该工作,假设自动拆箱!
Set<Integer> myIntegers; // your set
int[] ints = new int[myInts.size()];
int index = 0;
for(Integer i : myIntegers){
ints[index++] = i;
}
这就是为什么番石榴具有Ints.toArray(Collection<Integer>)
方法,返回int[]
。
使用Java 8+时遇到此问题的任何人都可以使用流。
int[] array = set.keySet().stream().mapToInt(i -> i).toArray();
不可能使用'toArray(T [])'。只需自行循环,让自动装箱就能完成它的工作。 – BalusC
你为什么要'int'? “整数”不正确的任何具体原因? – Nivas