1.判断集合是否相等时只须关注元素是否相等即可。
public class listAndVector {
public static void main(String[] args) {
ArrayList<String> strs = new ArrayList<String>();
strs.add("A");
Vector<String> strs2 = new Vector<String>();
strs2.add("A");
System.out.println(strs.equals(strs2));
}
}
运行结果:
2.subList产生的列表只是一个视图,所有的修改动作直接作用于原列表。
public class subList1 {
public static void main(String[] args) {
// 定义一个包含两个字符串的列表
List<String> c = new ArrayList<String>();
c.add("A");
c.add("B");
// 构造一个包含c列表的字符串列表
List<String> c1 = new ArrayList<String>(c);
// subList生成与c相同的列表
List<String> c2 = c.subList(0, c.size());
// c2增加一个元素
c2.add("C");
System.out.println("c==c1? " + c.equals(c1));
System.out.println("c==c2? " + c.equals(c2));
}
}
运行结果:
3.生成子列表后不要再操作原列表
public class subList2 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
List<String> subList = list.subList(0, 2);
//原字符串增加一个元素
list.add("D");
System.out.println("原列表长度:"+list.size());
System.out.println("子列表长度:"+subList.size());
}
}
运行结果:
4.只要生成的子列表多于一个,则任何一个子列表就都不能修改了,否则就会抛出ConcurrentModificationException异常。
public class subList3 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
List<String> subList1 = list.subList(0, 2);
List<String> subList2 = list.subList(0, 2);
//原字符串增加一个元素
list.add("D");
System.out.println("子列表长度:"+subList1.size());
System.out.println("子列表长度:"+subList2.size());
}
}
运行结果:
1676

被折叠的 条评论
为什么被折叠?



