1.數組轉換成List集合
采用java中集合自帶的asList()方法就可以完成轉換了
String[] array = new String[] {"zhu", "wen", "tao"}; // String數組轉List集合 List<String> mlist = Arrays.asList(array); // 輸出List集合 for (int i = 0; i < mlist.size(); i++) { System.out.println("mlist-->" + mlist.get(i)); }
2.List集合轉換成數組
采用集合的toArray()方法直接把List集合轉換成數組,這里需要注意,不能這樣寫:
String[] array = (String[]) mlist.toArray();
這樣寫的話,編譯運行時會報類型無法轉換java.lang.ClassCastException的錯誤,這是為何呢,這樣寫看起來沒有問題啊
因為java中的強制類型轉換是針對單個對象才有效果的,而List是多對象的集合,所以將整個List強制轉換是不行的
正確的寫法應該是這樣的
String[] array = mlist.toArray(new String[0]);
List<String> mlist = new ArrayList<>(); mlist.add("zhu"); mlist.add("wen"); mlist.add("tao"); // List轉成數組 String[] array = mlist.toArray(new String[0]); // 輸出數組 for (int i = 0; i < array.length; i++) { System.out.println("array--> " + array[i]); }
不管是數組轉換成集合,還是集合轉換成數組,都要注意轉換類型的一致性,String[]數組轉String類型的集合,當需要使用int,double等集合的時候,需要使用對應的對象
如:數組int[]用Integer[],double[]用Double[] ,因為List集合是對象的集合,而int、double等不是對象,所以需要用字段的對應對象類
引用材料: