java中List遍历删除元素,Android进阶之光
一、结缘
实话说,最开始刷题的时候,刷的是 LeetCode,后来才注意到了剑指 offer 的存在,最开始也是听别人说的,剑指 offer 在面试过程中出现的概率很大,就去尝试将其都做了一遍,做的过程中发现,其实有一部分题目与 LeetCode 有重合,但是更像是 LeetCode 经典题目的集合,更具有代表性。
最开始刷过一遍剑指 offer 后,其实印象并不深,直到我参加了 2020 年的秋招面试,才深刻的意识到剑指 offer 的题目出现高频性,至此之后,但凡有人问我怎么刷题,我都会先推荐刷剑指 offer,然后刷 LeetCode 的前 200 题,如今力扣中也有了官方授权的剑指 offer 题目,这实在是令人感到兴奋,结合平台出色的刷题体验,我相信更多的人会了解剑指 offer,下面我结合面试谈谈为什么我如此推崇。
Student student = iterator.next();
if (“male”.equals(student.getGender())) {
iterator.remove();//使用迭代器的删除方法删除
}
}
这种使用迭代器遍历、并且使用迭代器的删除方法(remove()) 删除是正确可行的,也是开发中推荐使用的。
误区:
如果将上例中的iterator.remove(); 改为list.remove(student);将会报ConcurrentModificationException异常。
这是因为:使用迭代器遍历,却使用集合的方法删除元素的结果。
再说for循环:
总体来说,不建议使用高级for循环(增强for循环)遍历删除/增加操作。
原因就是可能会报ConcurrentModificationException异常。
说可能是比较准确的,可能会报,也可能不报。
总结干货:
1.使用高级for循环遍历删除/增加元素时,如果在某次循环的过程中进行了删除或者是增加元素的操作,使用break或者return语句结束了循环操作,不报异常。
2.使用高级for循环遍历删除/增加元素时,除了1这种情况之外,必报ConcurrentModificationException异常。
验证:
1.break/return 语句结束循环
//准备数据
List list = new ArrayList<>();
list.add(new Student(“male”));
list.add(new Student(“female”));
list.add(new Student(“female”));
list.add(new Student(“male”));
//遍历删除增强for循环除去男生
for (Student student : list) {
if (“male”.equals(student.getGender())) {
list.remove(student);//使用集合的删除方法删除
break;//或者return
}
}
Log.d(“操作结果:”, list.toString());
Log日志为:操作结果:: [Student{gender=‘female’}, Student{gender=‘female’}, Student{gender=‘male’}]
2.其它情况:
//高级for遍历删除元素,没有break/return
for(Student student : list){
if (“male”.equals(student.getGender())) {
list.remove(student);//使用集合的删除方法删除
}
}
普通for循环:
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源
Android优秀开源项目:
- ali1024.coding.net/public/P7/Android/git
最后
有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
blic/P7/Android/git**
最后
有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
[外链图片转存中…(img-xflKfDmg-1649665746000)]
java中List遍历删除元素,Android进阶之光相关推荐
- java中List遍历删除元素
删除末尾几个元素 import java.util.LinkedList; import java.util.List;public class TestList {public static voi ...
- java list 遍历 删除元素_java中List遍历删除元素相关做法和注意事项
首先,使用简单的for循环时,list.remove()肯定是没问题的,只要注意一下下标别越界就行. 示例代码: List ll = new ArrayList(); ll.add("1&q ...
- java中Hashset集合删除元素_从Java中的HashSet中删除单个元素
要从HashSet中删除单个元素,请使用remove()方法. 首先,创建一个HashSet-HashSet hs = new HashSet(); 现在,将元素添加到HashSet-hs.add(& ...
- java set遍历删除元素_java中循环遍历删除List和Set集合中元素的方法
今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...
- java中map删除指定元素_Map中根据条件删除元素
今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...
- java中map怎么遍历,Java中怎么遍历Map的所有的元素
Java中怎样遍历Map的所有的元素 JDK1.4中 view plaincopy to clipboardprint? Map map = new HashMap(); Iterator it = ...
- STL中用erase()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector .deque):另一类是以不连续的节点形式存储的容器(如:list.set.map).在使用erase方法来删除元素时 ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- java中Map遍历的四种方式
java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...
最新文章
- macos nginx php mysql_mac环境下搭建nginx + php + mysql开发环境
- oracle中的sql%rowcount
- 好文章系列(都是网上非常好的文章)
- 【英语学习】【WOTD】scrumptious 释义/词源/示例
- 08年最佳短篇小说《误解》
- Quartus ii 13.1错误合集,持续更新
- ASP网页开发重点源代码
- JavaEE学习10--Ajax
- 构建一个简单的Keras +深度学习REST API
- AI 最新突破集锦 AI的瓶颈和进展 AI控制核聚变 AI预测蛋白质3D结构 Alpha Fold2 AI证明数学公式 自动驾驶 AI替代的硬件
- QT5软件开发入门到项目实战PDF(配完整示例代码)(持续更新)
- 账龄分析表excel模板_老会计分享财务报表及EXCEL会计报表分析系统模板!收藏领取!...
- Eclipse中使用SVN教程
- 西门子触摸屏脚本程序_西门子触摸屏实例程序
- 论文发表费用一般是多少
- 分享几个边玩儿边学的游戏App,学习从未如此轻松有趣
- 2022年ccpc威海站
- 运营技巧|要如何提升用户留存率?
- 微服务架构之服务调用
- 重置Windows打印机COM端口USB端口