将整数对象的 ArrayList 转换为 int 数组? [复制]

2024-04-13

可能的重复:
如何将包含 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(使用前将#替换为@)

将整数对象的 ArrayList 转换为 int 数组? [复制] 的相关文章

随机推荐