ArrayList轉化為基本類型int數組!
import java.util.ArrayList; import java.util.Random; public class Main { public static void main(String[] args) { ArrayList<Integer> arrayList = new ArrayList<>(); Random random = new Random(); int Len = 10000; for (int i = 0; i < Len; i++) { arrayList.add(random.nextInt()); } int[] ints = arrayList.stream().mapToInt(value -> 2 * value).toArray();
} }
IntStream mapToInt(ToIntFunction<? super T> mapper);
參數mapper是一個函數式接口!
ArrayList轉化為包裝類Interger數組!
import java.util.ArrayList;
import java.util.Random;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<>();
Random random = new Random();
int Len = 10000;
for (int i = 0; i < Len; i++) {
arrayList.add(random.nextInt());
}
//方式一:public Object[] toArray(){...}
Object[] objects0 = arrayList.toArray();//方式一
//方式二:public <T> T[] toArray(T[] a){...}
Integer[] integers1 = arrayList.toArray(new Integer[arrayList.size()]);
Integer[] integers2 = arrayList.toArray(new Integer[0]);
//對比public Object[] toArray(){...} public <T> T[] toArray(T[] a){...}源碼
//推薦方式
Integer[] integers3 = (Integer[]) arrayList.toArray();
}
}
基本類型數組轉ArrayList!
public class Main { public static void main(String[] args) { int[] array = new int[10000000]; Random random = new Random(); for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(); }
int cycle = 100; long begin = 0; long end = 0;
//方式1 begin = System.currentTimeMillis(); for (int i = 0; i < cycle; i++) { List<Integer> collect1 =new ArrayList<>(array.length); for (int k = 0; k < array.length; k++) { collect1.add(array[k]); } collect1 = null; } end = System.currentTimeMillis(); System.out.printf("(end - begin)*1.0/cycle:%.6f\n",(end - begin)*1.0/cycle); //方式2 begin = System.currentTimeMillis(); for (int i = 0; i < cycle; i++) { List<Integer> collect0 = Arrays.stream(array).boxed().collect(Collectors.toList()); collect0 = null; } end = System.currentTimeMillis(); System.out.printf("(end - begin)*1.0/cycle:%.6f\n",(end - begin)*1.0/cycle); } }
比較結果:
從結果可以看出:方式1明顯快於方式2!
包裝類型Interger數組轉ArrayList!
Arrays.asList()!