可能是重复问题:
如何将包含整数的ArrayList转换为原始的int数组?
我尝试了下面的代码,但它不起作用。我是否必须制作一个循环将ArrayList
复制到一个数组中?
int[]intArray = (int[]) integerArrayList.toArray();
可能是重复问题:
如何将包含整数的ArrayList转换为原始的int数组?
我尝试了下面的代码,但它不起作用。我是否必须制作一个循环将ArrayList
复制到一个数组中?
int[]intArray = (int[]) integerArrayList.toArray();
Apache Commons
ArrayUtils#toPrimitive
方法从包装数组中获取原始数组:-public static int[] toPrimitive(Integer[] array)
int[] arr = ArrayUtils.toPrimitive((Integer[])integerArrayList.toArray());
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);
int[] arr = new int[myList.size()];
for(int i = 0; i < myList.size(); i++) {
if (myList.get(i) != null) {
arr[i] = myList.get(i);
}
}
int[] intArray = new int[integerArrayList.size()];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = integerArrayList.get(i);
}
int
。只需将声明int
更改为Integer
。其他代码将使用自动拆箱到int
元素(如果需要的话)。
// List adapter for primitive int array public static List<Integer> asList(final int[] a) { return new AbstractList<Integer>() { public Integer get(int i) { return a[i]; } // Throws NullPointerException if val == null public Integer set(int i, Integer val) { Integer oldVal = a[i]; a[i] = val; return oldVal; } public int size() { return a.length; } };
}
你应该使用ArrayList的toArray(T[] arr)
方法,而不是没有参数的ArrayList的toArray()
方法。
请参考这里的方法签名。
可以像下面这样实现:
ArrayList<Integer> al = new ArrayList<>();
al.add(2);
al.add(3);
Integer[] arr = al.toArray(new Integer[al.size()]);
System.out.println(arr.length);//returns 2
nums.stream().mapToInt(x -> x).toArray();
- Shivam Tripathi