java List元素删除的正确方式
最近线上出了一个bug,竟然是List元素删除导致,这个本以为是常识,很基础的编码。可没想到还是会有新的开发同学出错。
错误的删除方式:for循环遍历集合,通过索引删除,看下面的错误❎演示:
List<String> list = new ArrayList<>(4);list.add("a");list.add("b");list.add("b");list.add("c");for (int i = 0; i <list.size(); i++) {if (list.get(i).equals("b")) {list.remove(i);}}System.out.println(list);
运行结果为:[a, b, c]
以上代码是想删除集合中的“b”元素,然而并没有全部删除!
正确的操作方法:
方法1:
List<String> list = new ArrayList<>(4);list.add("a");list.add("b");list.add("b");list.add("c"); Iterator<String> it = list.iterator();while (it.hasNext()){String s = it.next();if (s.equals("b")){it.remove();}}System.out.println(list);
方法2: 一行搞定
List<String> list = new ArrayList<>(4);list2.add("a");list2.add("b");list2.add("b");list2.add("c");list = list.stream().filter(f -> !f.contains("b")).toList();System.out.println(list);
方法3:一行搞定
List<String> list = new ArrayList<>(4);list.add("a");list.add("b");list.add("b");list.add("c");list.removeIf(s -> s.equals("b"));System.out.println(list);
以上三种方法,都没有问题,可以挑喜欢的用。
java List元素删除的正确方式相关推荐
- java 中启动线程的正确方式
启动线程的正确方式是运行Thread类中的start()方法,使用run()方法只不过是运行了一个普通方法而已. 线程对象在初始化之后,由当前线程(主线程)执行的start()方法,然后去告诉jvm虚 ...
- java map循环删除_map循环删除某个元素
下面代码展示了遍历Map时删除元素的正确方式和错误方式. import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- JAVA中循环删除list中元素的方法总结
原文:http://www.cnblogs.com/aspirant/p/7900854.html 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天 ...
- JAVA中循环删除集合中元素的方法总结
一.list集合循环删除元素 1.通过普通的for删除删除符合条件的多个元素 for(int i=0;i<list.size();i++){if(list.get(i).equals(" ...
- java list 范围删除_JAVA中循环删除list中元素(移除list两时间范围外的元素)
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
- Java中循环删除list中元素的方法总结(总结)
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区.下面我们来一起看一下. Java中循环遍 ...
- java set遍历删除元素_java中循环遍历删除List和Set集合中元素的方法
今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...
- Java集合中元素删除
在Java中删除集合中元素时,需要特别注意,一方面是因为,Java是并发编程语言,如果存在并发操作,则会出现逻辑异常:另一方面,在List中删除元素,如果操作不当,则会抛出异常. 阿里推出的<J ...
- java for循环删除元素_JAVA中循环删除list中元素的方法总结
JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i if(list.get ...
最新文章
- 其实你做的大部分工作都是浪费
- python制作自动抢票_python自动抢票
- 4行代码AC——L1-026 I Love GPLT (5分)
- 单列集合Set的实现类HashSet
- jQuery中ajax请求的六种方法(三、五):$.getScript()方法
- Real-time HTML Editor (实时网页编辑器)
- pushbox(1)
- java数列的个位数求和_java二位数组相加
- python open w_python-文件操作示例
- 激烈讨论:我身边的IT认证
- 190617每日一句;我们可以普通,但我们必须拒绝平庸,别再去追随他人的脚步,开拓属于自己的道路
- PR快闪模板 高端黑白超级快闪图文展示开场PR视频模板
- Android MeasureSpec的理解和源码的解析
- 2018-2019-1 20165301 20165304 20165314 实验二 固件程序设计
- python读取excel画折线图_python读取excel数据绘制简单曲线图的完整步骤记录
- unity摄像机镜头平滑处理
- Win7快速启动栏设置及防止消失方法
- 阿里乾坤qiankun
- JetBrain补丁
- 快速入门:Excel中如何按照多个字段排序