如何转换包含整数到原始的int数组一个ArrayList? [英] How to convert an ArrayList containing Integers to primitive int array?
问题描述
我想转换包含整数一个ArrayList对象,以原始的INT []与下面的一段code,但它抛出编译时错误。是否有可能在Java中转换?
列表<整数GT; X =新的ArrayList<整数GT;();
INT [] N =(INT [])x.toArray(INT [x.size()]);
您可以转换,但我不认为有什么内置的自动做到这一点:
公共静态INT [] convertIntegers(列表<整数GT;的整数)
{
INT [] = RET新INT [integers.size()];
的for(int i = 0; I< ret.length;我++)
{
保留由[i] = integers.get(ⅰ).intValue();
}
返回RET;
}
(请注意,这将抛出一个NullPointerException异常,如果在其中任一的整数
或任何元素空
)
编辑:根据意见,您可能需要使用列表迭代,以避免与列表讨厌的费用,如的LinkedList
:
公共静态INT [] convertIntegers(列表<整数GT;的整数)
{
INT [] = RET新INT [integers.size()];
迭代器<整数GT;迭代= integers.iterator();
的for(int i = 0; I< ret.length;我++)
{
保留由[i] = iterator.next()的intValue();
}
返回RET;
}
I'm trying to convert an ArrayList containing Integer objects to primitive int[] with the following piece of code, but it is throwing compile time error. Is it possible to convert in Java?
List<Integer> x = new ArrayList<Integer>();
int[] n = (int[])x.toArray(int[x.size()]);
You can convert, but I don't think there's anything built in to do it automatically:
public static int[] convertIntegers(List<Integer> integers)
{
int[] ret = new int[integers.size()];
for (int i=0; i < ret.length; i++)
{
ret[i] = integers.get(i).intValue();
}
return ret;
}
(Note that this will throw a NullPointerException if either integers
or any element within it is null
.)
EDIT: As per comments, you may want to use the list iterator to avoid nasty costs with lists such as LinkedList
:
public static int[] convertIntegers(List<Integer> integers)
{
int[] ret = new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for (int i = 0; i < ret.length; i++)
{
ret[i] = iterator.next().intValue();
}
return ret;
}
这篇关于如何转换包含整数到原始的int数组一个ArrayList?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!