import java.util.*;
public class bb
{
private static void test() {
ArrayList<String> arrayList = new ArrayList<String>();
for(int i = 0; i < 10; i++)
arrayList.add("S" + i);
List<String> subList = arrayList.subList(0, 5);
arrayList.add("o1");
//subList.add("sb1");
System.out.println("original list size: " + arrayList.size());
System.out.println("sub list size : " + subList.size());
}
public static void main(String args[])
{
test();
}
}subList.add("sb1")怎么不可以使呢,出错,subList.size()这句也出错,高手给看看了Exception in thread "main" java.util.ConcurrentModificationException
at java.util.SubList.checkForComodification(Unknown Source)
at java.util.SubList.size(Unknown Source)
at bb.test(bb.java:16)
at bb.main(bb.java:20)
public class bb
{
private static void test() {
ArrayList<String> arrayList = new ArrayList<String>();
for(int i = 0; i < 10; i++)
arrayList.add("S" + i);
List<String> subList = arrayList.subList(0, 5);
arrayList.add("o1");
//subList.add("sb1");
System.out.println("original list size: " + arrayList.size());
System.out.println("sub list size : " + subList.size());
}
public static void main(String args[])
{
test();
}
}subList.add("sb1")怎么不可以使呢,出错,subList.size()这句也出错,高手给看看了Exception in thread "main" java.util.ConcurrentModificationException
at java.util.SubList.checkForComodification(Unknown Source)
at java.util.SubList.size(Unknown Source)
at bb.test(bb.java:16)
at bb.main(bb.java:20)
public class bb
{
private static void test() {
ArrayList<String> arrayList = new ArrayList<String>();for(int i = 0; i < 10; i++)
arrayList.add("S" + i);
List<String> subList = arrayList.subList(0, 5);
//arrayList.add("o1");
subList.add("sb1");System.out.println("original list size: " + arrayList.size());
System.out.println("sub list size : " + subList.size());
}
public static void main(String args[])
{
test();
}
}
如果原始列表变动了,增加或删除,或更新元素
视图就失效了,除非是通过视图进行添加或删除操作有点类似于迭代器。当被迭代的集合变化时,迭代器立即失效。除非是迭代器本身支持的增加或删除操作
而且对sublist进行删除arrayList 也会被清除