使用Arrays.asList()對數組轉化成集合后,其底層數據結構還是數組
例如:
1 String[] str = {"a","b"}; 2 List list = Arrays.asList(str); 3 list.add("c");//報錯 4 str[0] = "d";//list.get(0)也隨之改變
正確寫法為:
1.new ArrayList(),然后for循環數組,一個個add();
2.List list = new ArrayList<>(Arrays.asList(str));//推薦寫法
3.使用java8的Stream:
1 Integer [] myArray = { 1, 2, 3 }; 2 List myList = Arrays.stream(myArray).collect(Collectors.toList()); 3 //基本類型也可以實現轉換(依賴boxed的裝箱操作) 4 int [] myArray2 = { 1, 2, 3 }; 5 List myList = Arrays.stream(myArray2).boxed().collect(Collectors.toList());
4.使用 Apache Commons Collections:
1 List<String> list = new ArrayList<String>(); 2 CollectionUtils.addAll(list, str);
