引出问题

当我们从集合中找出某个元素并删除的时候可能出现一种并发修改异常问题。

哪些遍历存在问题?

a.迭代器遍历集合且直接用集合删除元素的时候可能出现。

b.增强for循环遍历集合且直接用集合删除元素的时候可能出现。

哪种遍历且删除元素不出问题

迭代器遍历集合但是用迭代器自己的删除方法操作可以解决。

使用for循环遍历并删除元素不会存在这个问题。

示例代码:

package collection.app.d5_collection_list;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/**删除集合中的元素:当我们从集合中找出某个元素删除时,可能会出现一种并发修改异常问题*/
public class ListDemo4 {public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("张三");list.add("Java");list.add("Java");list.add("通通");list.add("通通");System.out.println(list);//删除集合中Java元素//1.迭代器遍历删除指定元素
//        Iterator<String> it = list.iterator();
//        while (it.hasNext()){
//            String ele= it.next();
//            if (ele.equals("Java")){
//                it.remove();//使用迭代器删除当前位置,保证不后移,能够成功遍历
//            }
//        }
//        System.out.println(list);//2.foreach遍历删除(不可以删除,会出现异常)
//        for (String s:list) {
//            if ("Java".equals(s)){
//                list.remove("Java");
//            }
//        }
//        System.out.println(list);//3.Lambda表达式(会出现异常)
//        list.forEach(s->{
//        if ("Java".equals(s)){
//                list.remove("Java");
//            }
//        });//4.for循环遍历//a.方案1
//        for (int i = 0; i < list.size(); i++) {
//            if ("Java".equals(list.get(i))){
//                list.remove("Java");
//                i--;
//            }
//        }
//        System.out.println(list);//b.方案(倒着遍历删除)for (int i=list.size()-1;i>=0;i--){if ("Java".equals(list.get(i))){list.remove("Java");}}System.out.println(list);}
}

运行截图:

Java中删除集合中的指定元素相关推荐

  1. java删除集合元素吗_java如何删除集合中的元素

    java如何删除集合中的元素 如何使用java删除集合中的'元素呢?下面是小编给大家提供的删除集合中元素的常见方法,欢迎阅读,更多详情请关注应届毕业生考试网. Java代码如下: package co ...

  2. Java 删除集合中指定的元素

    使用 Collection 类的 collection.remove() 方法来删除集合中的指定的元素 完整代码 import java.util.*;public class Main {publi ...

  3. 循环的时候去删除集合中的元素 java.util.ConcurrentModificationException

    使用for循环,删除集合中的元素,会报错 java.util.ConcurrentModificationException 只能通过迭代器 iterator删除 1:在while循环中使用itera ...

  4. Python 集合06 discard()方法—删除集合中的指定元素

    discard()方法-删除集合中的指定元素 文章目录 discard()方法-删除集合中的指定元素 1.语法要点 2.实操练习 (1)删除的元素在集合中 (2)删除集合中不存在的元素,discard ...

  5. Java 循环删除list中指定元素

    Java 循环删除list中指定元素 1.for循环遍历删除指定元素 2.增强for循环删除指定元素 3.iterator删除指定元素 1.for循环遍历删除指定元素 List<String&g ...

  6. java数组删除元素_java中删除 数组中的指定元素方法

    java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子. java的api中,并没有提供删除数组中元素的方法.虽 ...

  7. PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException...

    PageCollectionView,没有使用Filter的时候一切正常:当使用Filter的时候,删除集合中的元素,会抛出如下异常: 1: 指定的参数已超出有效值的范围.\n参数名: index 2 ...

  8. List.removeIf():删除集合中满足给定条件的所有元素

    今天偶然间发现了Collection在1.8新增了一个removeIf(Predicate<? super E> filter)方法,能够实现面试官们常问的:如何一边遍历,一边删除. 首先 ...

  9. Python中删除set中指定元素元素不存在时不报错:s.discard()元素不存在时报错:s.remove()

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python中删除set中指定元素 元素不存在时不报错:s.discard() 元素不存在时 ...

最新文章

  1. 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks
  2. VSS admin用户忘记密码的解决方法
  3. 在windows下安装PyPdf2
  4. python scipy 稀疏矩阵详解
  5. UNITY3D 脑袋顶血顶名
  6. mysql正在运行安全文件怎么办_MySQL服务器运行的安全文件化选项,所以它不能执行该语句什么情? 爱问知识人...
  7. python整数类型在每一台计算机上的取值范围是一样的_人工智能第一章:Python语言基础...
  8. 4python全栈之路系列之scrapy爬虫s
  9. 老年手机计算机的按键怎么调至桌面,怎样设置一键回到桌面啊,就是这个图标(如图)...
  10. 【2019/3/23】周进度报告
  11. 变电站综合自动化系统是将变电站内的二次设备经过功能的组合和优化设计
  12. OMNeT++理论算法仿真详述
  13. 基于C++的即时通信软件设计
  14. 鼠标悬停放大图片特效
  15. 乐观中谨慎 招聘调薪现贫富差距
  16. 微信特殊字符包括颜文字、表情的后台存储及前端展示方法
  17. java的 内省机制_Java内省机制
  18. 豆豆游黄山[201602]
  19. 【计算机毕业设计】33.快递取件预约系统源码
  20. 安全锁界面,防止底部上滑触发人脸解锁与绘制图案锁冲突

热门文章

  1. 算法rookie01
  2. Python量化入门系列:获取数据-Tushare获取股票数据(1)
  3. 实验二.Python 运算符与内置函数
  4. 计算机网络在航海中的应用,基于计算机视觉的手势交互技术及其在航海中的应用...
  5. 服务器带宽打开网页很慢,买的服务器带宽小,打开网页慢怎么办?
  6. 2022年自考专业(公关关系)公关关系策划练习题
  7. (四)手把手带你搭建精美简洁的个人时间管理网站—相关产品调研
  8. 【马仔创业记】初创公司的人员组成
  9. 苦难与希望,中国博士生调查报告!
  10. matlab预处理光谱数据,一种近红外光谱数据预处理方法与流程