List删除数据的两种方式

List<String> strList = new ArrayList<String>();
  strList.add("1");
  strList.add("2");
  strList.add("3");
  //第一种方式,使用Iterator的remove方法
  Iterator<String> strIterator = strList.iterator();
  while(strIterator.hasNext())
  {
   String str = strIterator.next();
   if("2".equals(str))
   {
    strIterator.remove();
   }
  }
  System.out.println("strList.size="+strList.size());
  //第二种方式,使用List的remove方法,注意:remove之后i的值变化了,需要将i的值减一
  for(int i = 0; i<strList.size();i++)
  {
   if("2".equals(strList.get(i)))
   {
    strList.remove(i);
    i=i-1;
   }
   System.out.println(strList.get(i));
  }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Java中,List是一种非常常用的数据结构,它可以存储多个对象,而且可以动态扩展或缩小。很多时候,我们需要对List中的数据进行删除操作。 一般来说,List两种删除方式,一种是通过元素索引删除,另一种是通过元素对象删除。我们可以使用“remove(index)”方法删除指定索引位置的元素,也可以使用“remove(object)”方法删除指定对象。 但是,在List删除操作并不是完全没有限制的。如果在List遍历过程中进行删除操作,容易出现并发修改异常,因为删除操作可能会导致索引位置的变化,而这时候List的迭代器可能就无法正常处理了。 为了避免这种情况,我们可以使用迭代器自身的remove方法进行元素删除,这种方式会在删除时同步更新迭代器状态,保持迭代器与List的一致性。具体操作如下: List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if ("B".equals(item)) { iterator.remove(); } } 上面的代码演示了如何使用迭代器遍历List删除元素。在遍历过程中,如果发现需要删除的元素,则调用迭代器的remove方法进行删除。这样就可以避免删除操作导致的并发修改异常问题。 总之,在进行List删除操作时,需要注意遍历过程中不能直接调用List删除方法,而应该使用迭代器自身的remove方法进行删除,以保持迭代器与List的一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值