可能的重复:
如何将包含 Integers 的 ArrayList 转换为原始 int 数组? https://stackoverflow.com/questions/718554/how-to-convert-an-arraylist-containing-integers-to-primitive-int-array
我尝试了下面的代码,但它不起作用。我必须循环复制吗ArrayList
到一个数组中?
int[]intArray = (int[]) integerArrayList.toArray();
如果你想原始类型数组,你可以使用Apache Commons http://commons.apache.org/lang/ ArrayUtils#toPrimitive http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html#toPrimitive%28java.lang.Short%5b%5d%29从包装数组获取原始数组的方法:-
public static int[] toPrimitive(Integer[] array)
你可以这样使用它:-
int[] arr = ArrayUtils.toPrimitive((Integer[])integerArrayList.toArray());
或者,您可以使用1-arg的版本toArray方法,需要一个array并仅返回该类型的数组。这样,您就不必类型转换.
List<Integer> myList = new ArrayList<Integer>();
Integer[] wrapperArr = myList.toArray(new Integer[myList.size()]);
// If you want a `primitive` type array
int[] arr = ArrayUtils.toPrimitive(wrapperArr);
但是,如果您同意wrapper type
array (这当然不会给你带来麻烦), 然后你不需要做最后一步。
另外,您还可以创建一个原始数组,而不必创建中间包装类型大批。为此你必须把它写下来loop
: -
int[] arr = new int[myList.size()];
for(int i = 0; i < myList.size(); i++) {
if (myList.get(i) != null) {
arr[i] = myList.get(i);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)