ArrayList2.关键方法和变量介绍list = new ArrayList<>(); list.add("1"); list.add("2"); Iterator iterator = list.iterator(); do { if (!iterator.hasNext()) break; String temp = (String) iterator.next(); if ("2".equals(temp)) list.remove(temp); } while (true);
ArrayList中有 两个变量 一个方法:
- modCount: 是ArrayList中的一个成员变量。它表示该集合实际被修改的次数。
- expectedModCount: 是 ArrayList中的一个内部类——Itr中的成员变量。expectedModCount表示这个迭代器期望该集合被修改的次数。
- checkForComodification方法: 校验上面两个变量是否相等,不等就抛出异常(见下图),iterator.next()方法会调用此方法.
ArrayList调用remove方法,时只会修改 modCount 不会修改 expectedModCount.
而Iterator调用remove方法时,会同时修改 modCount 和 expectedModCount
如果想看详细解释的话可以看: foreach循环中为什么不要进行remove/add *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)