之前一直不知道怎么把list轉化為int[],深入研究了一下,終於搞懂了 。看示例
import java.util.ArrayList; import java.util.List; //list轉為數組 public class Main { public static void main(String[] args) {//1.一維字符串list轉為數組 List<String> list1=new ArrayList<>(); list1.add("hello"); list1.add("world"); list1.add("!"); String[] strings=new String[3]; strings=list1.toArray(new String[0]);//傳入參數,表示強轉 //2.一維數字list轉為數組 List<Integer> list2=new ArrayList<>(); list2.add(1); list2.add(2); list2.add(3); int[] arr=new int[3]; //下一行代碼是仿照String類型寫的。但是報錯'toArray(T[])' in 'java.util.List' cannot be applied to '(int[])' //原因:toArray()方法應該傳入的參數T是泛型,但是泛型必須是引用類型,不能是基本類型(比如int) // arr=list.toArray(new int[0]); //解決方法1:采用流式處理Stream進行處理 arr=list2.stream().mapToInt(Integer::valueOf).toArray();
//解決方法2:聲明一個Integer類型的數組 Integer[] arr2=new Integer[3]; arr2=list2.toArray(new Integer[0]);
for(int num:arr) System.out.println(num);//1 2 3 for(int num:arr2) System.out.println(num);//1 2 3 //3.二維數字list轉為數組 List<int[]> list3=new ArrayList<>(); list3.add(new int[]{0,111}); list3.add(new int[]{1,222}); //這里的泛型T為:int[],是引用類型,所以不會報錯 int[][] arr2D=list3.toArray(new int[0][0]); for (int[] n:arr2D) System.out.println(n[0]+" " +n[1]);//0 111 1 222 } }