- 各种集合的异同点
- list
subList的特性
Arrays.subList在原来的list中截取下标m到n-1的子list,不产生新的堆内存,对子list进行操作,会对父list产生影响,当父list进行增/删操作时,子list会报"java.util.ConcurrentModificationException"异常,在使用该子list的时候抛出。
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("33");
list.add("44");
list.add("55");
**List<String> list2 = list.subList(2, 4);
list2.add("66");**
System.out.println(list.size());//6
System.out.println(list2.size());//3
asList的特性
asList可以将数组转化为list,产生的list并非"java.util.ArrayList",而是"java.util.Arrays$ArrayList",是arrays里的一个内部类,与上面一样,无法执行增/删操作,会抛出"java.lang.UnsupportedOperationException"异常,所以在数组长度未确定时,不要转换为list
String[] us = new String[5];
us[0] = "1";
us[1] = "2";
us[2] = "3";
us[3] = "4";
us[4] ="5";
List<String> users = Arrays.asList(us);
users.remove(3);//java.lang.UnsupportedOperationException
users.add("6");//java.lang.UnsupportedOperationException
//users.get(0).setNum(10);//当为对象时,可修改对象内容
- set
- map
- array
- json