Java中循环删除list中元素的方法总结(总结)
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区。下面我们来一起看一下。
Java中循环遍历list有三种方式:for循环,增强for循环(也就是常说的foreach循环),iterator遍历。
1.for循环遍历list
for(int i=0;i<list.size();i++){if(list.get(i).equals("del")){list.remove(i);}}
这种方式的问题在于,删除某个元素之后,list的大小发生了变化,而你的索引也在变化,所以导致你在遍历的时候会漏掉某些元素.比如当你删除第一个元素之后,继续根据索引访问第二个元素时,因为删除的关于后面的元素都往前移动了一位,所以实际访问的是集合中的第三个元素.因此,这种方式可以用在删除特定位置的一个元素时使用,但不适合循环删除多个元素时使用.
2.增强for循环
for(String x : list){if(x.equals("del")){list.remove(x);}}
这种方式的问题在于,删除元素后继续循环会报错误信息ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常的抛出。但是删除完毕马上使用break跳出,则不会触发报错。
3.iterator遍历
Iterator<String> it = list.iterator();while(it.hasNext()){String x = it.next()if(x.equals("del")){it.remove();}}
总结:
1.循环删除list中的特定一个元素的,可以使用三种方式中的任意一种,但在使用的时候要注意以上分析的各个问题。
2.循环删除list中的多个元素,应该使用迭代器iterator方法。
Java中循环删除list中元素的方法总结(总结)相关推荐
- JAVA中循环删除list中元素的方法总结
原文:http://www.cnblogs.com/aspirant/p/7900854.html 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天 ...
- java 删除list元素_JAVA中循环删除list中元素的方法总结
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
- java list 范围删除_JAVA中循环删除list中元素(移除list两时间范围外的元素)
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
- JAVA中循环删除集合中元素的方法总结
一.list集合循环删除元素 1.通过普通的for删除删除符合条件的多个元素 for(int i=0;i<list.size();i++){if(list.get(i).equals(" ...
- java 遍历删除list_JAVA中循环删除list中元素
JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i if(list.get ...
- java for循环删除元素_JAVA中循环删除list中元素的方法总结
JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i if(list.get ...
- JAVA中循环删除集合中元素的方法
使用Iterator的方式可以顺利删除和遍历 Iterator<String> it = list.iterator(); while(it.hasNext()){String x = i ...
- Java 循环删除list中指定元素
Java 循环删除list中指定元素 1.for循环遍历删除指定元素 2.增强for循环删除指定元素 3.iterator删除指定元素 1.for循环遍历删除指定元素 List<String&g ...
- Java中使用for循环删除数组中某个元素,并按原有顺序打印
package com.ty.demo; //使用for循环删除数组中的某个元素,并按照原有顺序打印出来 public class Demo03 { public static void main(S ...
最新文章
- iOS培训教程——设置默认语言
- 路由器简化配置和ASA异步预共享密钥方式建立IKEV2的L2L ×××
- c#读写XML文件 (转)
- 为什么我从Python转战到Node.js
- 通过Url网络编程实现下载
- JUnit+EclEmma进行覆盖测试
- 【kafka】kafka 中 消息 record 格式
- live2d手机制作软件_live2d制作器手机版
- VirtualBox装VBoxGuestAdditions增强工具失败
- oracle group by优化
- 阿里云服务器地域节点测试IP分享(国内+海外)Ping值延迟测试
- 淘宝直通车优化,自定义人群,ROI提升
- 关于云计算的一些概念理解
- 多模态模型 CLIP4Clip 带你实现文本与视频互搜
- IOCP之accept、AcceptEx、WSAAccept的区别 .
- 设计抗混叠滤波器的三个指导原则--日记
- ios swift 纯代码设置UITableViewCell的style
- css3之BFC、IFC、GFC和FFC
- 爬取大众点评页面数据教程,图片文字如何爬取
- 建立动态碳排放责任因子系统——促进风电光电的有效消纳(江亿)
热门文章
- RabbitMQ小结
- Eclipse怎么全局搜索替换(整个项目)
- 让visio保存背景透明的图片。
- 2021甘肃平凉高考成绩查询,甘肃省教育考试院:2021年甘肃高考查分入口、查分系统...
- python实现第一个web_使用Python的Flask框架来搭建第一个Web应用程序
- cesium three性能比较_硬金和千足金都是黄金,哪个比较好?为什么80%人都说硬金不好?...
- java 局部变量空间 大小_变量作用域-1:局部变量 和成员变量、各种变量内存分配的大小...
- wrong elf class: elfclass32_薇娅倾情推荐亿健ELF跑步机,价格优惠大还为粉丝争取福利! - 消费...
- 水果手绘插画素材|一眼就想吃了!
- 品牌家居清洁之妙法产品平面海报设计模板