—— Java中的集合边遍历边删除是比较好的选择是:使用迭代器中的方法
Iterator简介
Iterator的API
关于Iterator主要有三个方法:hasNext()、next()、remove()
- hasNext:没有指针下移操作,只是判断是否存在下一个元素
- next:指针下移,返回该指针所指向的元素
- remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素
一般循环for和foreach都需要先知道集合的类型,甚至是集合内元素的类型,即需要访问内部的成员;iterator是一个接口类型,他不关心集合或者数组的类型,而且他还能随时修改和删除集合的元素。他不包含任何有关他所遍历的序列的类型信息,能够将遍历序列的操作与序列底层的 结构分离。
基本使用模式就是:
List<object> arr = xxx; // 把你的list赋值过来
Iterator it = arr.iterator();
while (it.hasNext()) {
object o = it.next(); // 当前遍历对象
if (xx) {
iterator.remove(); // 删除o
}
}