【发布时间】:2020-09-07 17:41:37
【问题描述】:
我创建了一个 Integer 包装类的 ArrayList,然后将其转换为 Integer 类型数组。现在我的目标是将其转换为 int 类型数组。尝试使用 ArrayUtils.toPrimitive() 方法解决问题。但它有一些问题。 这是我的代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.lang.Object;
public class ArrayListToArray {
public static void main(String[] args) {
// Convert to int array in one line
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(Integer.parseInt("1"));
list.add(Integer.parseInt("2"));
list.add(Integer.parseInt("3"));
list.add(Integer.parseInt("4"));
Integer[] wrapperArr = list.toArray(new Integer[list.size()]);
// If you want a `primitive` type array
int[] arr = ArrayUtils.toPrimitive(wrapperArr);
System.out.println(Arrays.toString(arr));
}
}
显示错误ArrayUtils 无法解析。 现在执行代码。
如何在不编写任何循环的情况下解决问题? 我正在探索 java 内置类、方法和包。
或者是否有ArrayUtils 以外的其他方法 来做同样的事情?
提前致谢。 :-)
【问题讨论】:
-
ArrayUtils 似乎来自 Apache Commons。对于没有依赖关系的解决方案,试试这个:
int[] arr = list.stream().mapToInt(Integer::valueOf).toArray(); -
^ 您应该更喜欢这样,但您也可以使用
import org.apache.commons.lang3.ArrayUtils;导入ArrayUtils。 -
谢谢@JohannesKuhn,你的小费对我有用。
标签: java arrays arraylist wrapper primitive