补充一下ArrayaList中的内容;
注意:千万不然在使用迭代器遍历集合元素的时候利用集合对象删除元素的方法,否则会出现
java.util.ConcurrentModificationException异常,
@Test
public void m5() {
List Ary = new ArrayList();
Ary.add(0, "西瓜");//add()方法是无返回值类型的方法
Ary.add(1, "葡萄");
Ary.add(2, "柠檬");
System.out.println("----------测试迭代器报错----------");
//需要注意的是,不要在使用迭代器遍历集
// 合元素的同时用集合对象方法去删除元素,否则会报错
//拿到Ary的迭代器
Iterator iterator1 = Ary.iterator();
while (iterator1.hasNext()) {
Object o = iterator1.next();
System.out.println("当前元素是:" + o);
Ary.remove(o);
}
System.out.println(Ary.size());
}
以下特殊形式的for循环时一样的异常结果:
```java
System.out.println(Ary.size());
for (Object o:Ary){
System.out.println(Ary.remove(o));
}
``
但是以下方式并没有报错:
@Test
public void m5() {
List Ary = new ArrayList();
Ary.add(0, “西瓜”);//add()方法是无返回值类型的方法
Ary.add(1, “葡萄”);
Ary.add(2, “柠檬”);
System.out.println("----------测试迭代器报错----------");
//需要注意的是,不要在使用迭代器遍历集
// 合元素的同时用集合对象方法去删除元素,否则会报错
//拿到Ary的迭代器
Iterator iterator1 = Ary.iterator();
while (iterator1.hasNext()) {
System.out.println(“当前元素是:” + iterator1.next());
Ary.remove(iterator1.next());
}
System.out.println(Ary.size());
}
我们可以通过使用:
//需要注意的是,不要在使用迭代器遍历集
// 合元素的同时用集合对象方法去删除元素,否则会报错
//拿到Ary的迭代器
Iterator iterator1 = Ary.iterator();
while (iterator1.hasNext()) {
Object o = iterator1.next();
System.out.println("当前元素是:" + o);
iterator1.remove();
}
System.out.println(Ary.size());//迭代器可以改变集合中的元素
}