String[] arr = { "a", "b", "c" }; List<String> aslist = Arrays.asList(arr);
// asList 返回的list不能做新增、删除 // list.add("d"); List<String> arrList = new ArrayList<String>(aslist); List<Integer> intListOld = new ArrayList<>(); intListOld.add(1);intListOld.add(2); intListOld.add(3);intListOld.add(4); List<Integer> intListNew = intListOld.subList(1, 3); // subList 生成子列表后,不要试图去操作原列表 // intListOld.add(5);
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
List<Integer> list3 = list1.subList(0, list1.size()-1);
list3.add(3);
System.out.println("list1 == list3:" + list1.equals(list3));
System.out.println(list1); System.out.println(list3);
list1 == list3:false
// subList返回的是一个视图,指向同一个位置,会作用到原数据,如果长度相同,则数据一样
[1, 3, 2]
[1, 3]