ArrayList删除某元素的几种方法

环境:
开发工具:IDEA
jdk:1.8

一、正序遍历:

     List<Integer> list = new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);for (int i = 0; i < list.size(); i++) {if(list.get(i)==2){list.remove(i);}}System.out.println("---------"+list.toString());

结果:

---------[1, 3, 4]

注:这种方式适合list中没有临近的重复数据,如果list中数据为:[1,2,2,3,4],这时候我们去删除2的话,第二个2是删除不掉的,因为我们修改了list的大小,会少遍历一个数据
二、倒序遍历

     List<Integer> list = new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);for (int i = list.size()-1; i >=0; i--) {if(list.get(i)==2){list.remove(i);}}System.out.println("---------"+list.toString());

结果:

---------[1, 3, 4]

三、iterator遍历器

     List<Integer> list = new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);Iterator<Integer> iterator = list.iterator();while (iterator.hasNext()){if (iterator.next()==2) {iterator.remove();}}System.out.println("---------"+list.toString());

结果:

---------[1, 3, 4]

附:
不能使用foreach去遍历删除,原因:

 foreach方式遍历元素的时候,是生成iterator,然后使用iterator遍历。在生成iterator的时候,会保存一个expectedModCount参数,这个是生成iterator的时候List中修改元素的次数。如果你在遍历过程中删除元素,List中modCount就会变化,如果这个modCount和exceptedModCount不一致, 就会抛出异常。这个是为了安全的考虑。如果使用iterator遍历过程中,使用List修改了元素,可能会出现不正常的现象。如果使用iterator的remove方法则会正常,因为iterator的remove方法会在内部调用List的remove方法,但是会修改excepedModCount的值,因此会正常运行。

ArrayList删除某元素的几种方法相关推荐

  1. java list移除符合条件的元素_java List删除指定元素的三种方法

    java List删除指定元素有3种方法,分别是普通for循环,增强for循环以及原生的Iterator迭代器循环来删除list中指定的某个元素,非常的简单. 1:普通for循环遍历list,并删除指 ...

  2. 在Python列表中删除重复元素的几种方法,用起来真好用

    一: 直接遍历列表删除 l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]for el in l1:if l1.count(el) > 1:l1.re ...

  3. 删除 List 元素的几种方法

    删除 List 中的元素会产生两个问题:  1.删除元素后 List 的元素数量会发生变化: 2.对 List 进行删除操作可能会产生并发问题: 现总结出五种可行方法 package com.xxx. ...

  4. list删除某个元素的三种方法

    Stream List<String> list1 = list.stream().filter(list2->!list2.equals("123")).col ...

  5. python 字符串删除重复_Python删除list里的重复元素有几种方法?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  6. Javascript循环删除数组中元素的3种方法

    本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍: 问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的 ...

  7. 《 Python List列表全实例详解系列(四)》__列表删除元素(4种方法)删除重复元素(去重)(8种方法)

    <  Python List列表全实例详解系列(四)> __列表删除元素(4种方法)删除重复元素(去重)(8种方法) 我的技术成长&学习资料整理分享之路 我遇到问题查找资料时,经常 ...

  8. vector 删除元素的几种方法

    vector 删除元素的几种方法 1.利用成员函数pop_back()可以删除最后一个元素: 2.利用成员函数erase()可以删除由一个iterator指出的元素: 3.通过STL中的算法库函数re ...

  9. php 从数组里删除元素,PHP从数组中删除元素的四种方法实例

    PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...

最新文章

  1. 关于php socket客户端连接java socket服务器端,出现连接中断的问题。
  2. 服务器扫描出漏洞怎么才会被攻击_维护企业服务器安全,你需要做到这8点
  3. js实现鼠标拖拽功能基本思路
  4. linux定时结束java进程_使用zt-exec库定时清理linux休眠进程
  5. 盘点最重要的7个Python库
  6. 批量修改txt内容_不用再慢慢手动修改,用Excel批量修改文件名
  7. Ruby Web实时消息后台服务器推送技术---GoEasy
  8. jira服务断电导致索引文件损坏问题解决
  9. 民生证券手机网上开户流程
  10. 如何创建_重庆市百科如何创建
  11. Amos24程序安装及注意事项
  12. 深入Marlin固件
  13. 正确认识P2P,从容面对风暴
  14. 构建一个 CLI 工具
  15. 微信公众号二维码怎么生成?好用的生成方法介绍
  16. 沙特国王科技大学计算机专业,沙特国王科技大学好不好?在世界的排名怎么样啊?哪个专业最强?...
  17. 基于python的数据挖掘实验报告_数据挖掘实验报告一
  18. DM368 UBL和u-boot的裁剪 .
  19. Quick小白书系列(三)MyApp详解
  20. 坚持开源软件的创新之路--陆首群

热门文章

  1. DOM 树是如何构建的 ?
  2. centos安装与配置
  3. 根据IP获取地理位置信息 — Golang
  4. 产品设计:如何准确定位设计风格?
  5. JavaScript中的浅拷贝与深拷贝(手写浅拷贝和深拷贝)
  6. 解决mysql load data加载本地null数据,表里出现0的情况
  7. 2021-05-02
  8. 异常与处理--python
  9. 【Spark | SparkStreaming】
  10. 国内三大B2C网站首页的信息架构【收集整理,本人非原作者】