很多ArrayList转数组的例子都是转String类型的数组
方法有两种
- Object[] array = arraylist.toArray();
- String[] array = arraylist.toArray(new String[arraylist.size()]);
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("A");
arraylist.add("B");
arraylist.add("C");
Object[] array1 = arraylist.toArray();
String[] array2 = arraylist.toArray(new String[arraylist.size()]);
但是如果想直接转int类型的数组,就会报错,只能写成Integer类型
ArrayList<Integer> arraylist = new ArrayList<>();
arraylist.add(1);
arraylist.add(2);
arraylist.add(3);
int[] array1 = arraylist.toArray(new int[arraylist.size()]);//报错
Integer[] array2 = arraylist.toArray(new Integer[arraylist.size()]);
很多时候Object类型和Integer类型的数组都不能满足要求,所以我们可以利用java8的新特性,将ArrayList转为int类型的数组
具体方法:
int[] array = arraylist.stream().mapToInt(Integer::intValue).toArray();
ArrayList<Integer> arraylist = new ArrayList<>();
arraylist.add(1);
arraylist.add(2);
arraylist.add(3);
int[] array = arraylist.stream().mapToInt(Integer::intValue).toArray();