網上搜Arraylist和數組互相轉換的方法時,舉的例子都是String類型的。比如:
但是對於int類型如果這樣寫:
ArrayList<Integer> a=new ArrayList<Integer>(); int[] array=(int[])a.toArray(new int[size]);//會報錯 則會報錯,這是因為int[]並不等同於Integer[]。因此如果換成Integer[]數組,則能正確運行。 List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); Integer[] array = list.toArray(new Integer[list.size()]);//能正確運行 for(int element:array){ System.out.println(element); }
如果非得希望得到int[]的話,只能用循環賦值來得到了。
int[] d = new int[list.size()]; for(int i = 0;i<list.size();i++){ d[i] = list.get(i); } 如果既不想用循環,又想要得到int[],那就只能在jdk8中使用IntStream了。
原文鏈接:https://blog.csdn.net/huanghanqian/article/details/73920439