Java -- 集合 -- 如何安全删除 List 中的元素

方法一:

for (int i = 0; i < list.size(); i++) {
  if (判断条件) {
   	list.remove(i);
   	i=i-1;
  }
}

List 每 remove 掉一个元素以后,后面的元素都会向前移动(数组结构),此时如果正常执行 i=i+1 ,则刚刚移过来的元素没有被读取,导致在遍历中存在漏掉元素的情况

方法二:

if (null != list && list.size() > 0) {
    Iterator it = list.iterator();  
    while(it.hasNext()){
        Student stu = (Student)it.next(); 
        if (判断条件) {
            it.remove(); //移除该对象
        }
    }
}

你可能感兴趣的:(#,集合)