使用toArray方法只能返回 Object [] 数组
List<Integer> nums = new ArrayList<Integer>();
Object [] array = nums.toArray();
而强制转型会出现异常
Integer[] temp = (Integer[])nums.toArray();
class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Integer;
可以使用以下方式进行指定类型转换, 但是注意只能返回引用类型
如下,如果是 int [] temp 就会报错
Integer[] temp = nums.toArray(new Integer[nums.size()]);
//int [] temp = nums.toArray(new Integer[nums.size()]); 会报错
Integer 数组转化成i int 数组
public void test05() {
Integer[] arr = {12,13,15};
//先将Integer[]转成Stream,再转成IntStream
int[] res = Arrays.stream(arr).mapToInt(Integer::valueOf).toArray();
}
//注意这里必须是 Integer 因为list只能用引用类型
Integer [] array = new Integer[] {1,2,3,45};
List<Integer> list = Arrays.asList(array);
Integer数组转成int数组
public void test05() {
Integer[] arr = {12,13,15};
//先将Integer[]转成Stream,再转成IntStream
int[] res = Arrays.stream(arr).mapToInt(Integer::valueOf).toArray();
}
int数组转成Integer数组
public void test06() {
int[] arr = {12,13,15};
//先将int[]装成intStream,然后使用boxed()进行装箱,得到Stream(Integer)
//然后使用Stream的toArray,传入IntFunction generator,返回Integer[]
Integer[] res = Arrays.stream(arr).boxed().toArray(Integer[]::new);
}