1.为什么有这个问题?
·因为ArrayList的toArray无法对int生效
↓
2.为什么无法对int生效?
·因为int不是对象,所以不是object的子类,只是基本的数据类型
↓
3.那么如何转换成int[ ]数组
·①可以直接转为Integer[ ]数组。
List<Integer> list =new ArrayList<>();
int size=list.size();
Integer[] arrs=list.toArray(new Integer[size]);
如果想integer数组转化为int数组,可以使用intValue方法,通过遍历获得
List<Integer> list =new ArrayList<>();
int size=list.size();
Integer[] arrs=list.toArray(new Integer[size]);
for(int i=0;i<intarrs.length;i++){
intarrs[i]=arrs[i].intValue();
}
·②创建一个数组,通过循环赋值
List<Integer> list =new ArrayList<>();
int size=list.size();
int []intarrs=new int[size];
for(int i=0;i<intarrs.length;i++){
intarrs[i]=list.get(i);
}
③通过Stream流转换
List<Integer> list =new ArrayList<>();
int[] arr= Arrays.stream(list).mapToInt(Integer::valueOf).toArray();
流转换参考自
https://www.cnblogs.com/thiaoqueen/p/13098009.html#_label1_0