一、结缘

实话说,最开始刷题的时候,刷的是 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进阶之光相关推荐

  1. java中List遍历删除元素

    删除末尾几个元素 import java.util.LinkedList; import java.util.List;public class TestList {public static voi ...

  2. java list 遍历 删除元素_java中List遍历删除元素相关做法和注意事项

    首先,使用简单的for循环时,list.remove()肯定是没问题的,只要注意一下下标别越界就行. 示例代码: List ll = new ArrayList(); ll.add("1&q ...

  3. java中Hashset集合删除元素_从Java中的HashSet中删除单个元素

    要从HashSet中删除单个元素,请使用remove()方法. 首先,创建一个HashSet-HashSet hs = new HashSet(); 现在,将元素添加到HashSet-hs.add(& ...

  4. java set遍历删除元素_java中循环遍历删除List和Set集合中元素的方法

    今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...

  5. java中map删除指定元素_Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...

  6. java中map怎么遍历,Java中怎么遍历Map的所有的元素

    Java中怎样遍历Map的所有的元素 JDK1.4中 view plaincopy to clipboardprint? Map map = new HashMap(); Iterator it = ...

  7. STL中用erase()方法遍历删除元素

    STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector .deque):另一类是以不连续的节点形式存储的容器(如:list.set.map).在使用erase方法来删除元素时 ...

  8. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  9. java中Map遍历的四种方式

    java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...

最新文章

  1. macos nginx php mysql_mac环境下搭建nginx + php + mysql开发环境
  2. oracle中的sql%rowcount
  3. 好文章系列(都是网上非常好的文章)
  4. 【英语学习】【WOTD】scrumptious 释义/词源/示例
  5. 08年最佳短篇小说《误解》
  6. Quartus ii 13.1错误合集,持续更新
  7. ASP网页开发重点源代码
  8. JavaEE学习10--Ajax
  9. 构建一个简单的Keras +深度学习REST API
  10. AI 最新突破集锦 AI的瓶颈和进展 AI控制核聚变 AI预测蛋白质3D结构 Alpha Fold2 AI证明数学公式 自动驾驶 AI替代的硬件
  11. QT5软件开发入门到项目实战PDF(配完整示例代码)(持续更新)
  12. 账龄分析表excel模板_老会计分享财务报表及EXCEL会计报表分析系统模板!收藏领取!...
  13. Eclipse中使用SVN教程
  14. 西门子触摸屏脚本程序_西门子触摸屏实例程序
  15. 论文发表费用一般是多少
  16. 分享几个边玩儿边学的游戏App,学习从未如此轻松有趣
  17. 2022年ccpc威海站
  18. 运营技巧|要如何提升用户留存率?
  19. 微服务架构之服务调用
  20. 重置Windows打印机COM端口USB端口

热门文章

  1. 电脑桌面便签怎么复制单条便签内容?
  2. 【植树节专题】回顾TcaplusDB的十年发展史
  3. 详解线程锁、进程锁、分布式锁以及数据库锁
  4. 3分钟读懂P问题与NP问题
  5. java读取Excel文档 + 存入数据库
  6. 详解线程锁、进程锁以及分布式锁,开发过程中解决的具体问题
  7. Ubuntu桌面入门指南(转载)
  8. java 写文件 0x0d_Java的文件读写操作 转
  9. android behavior 自定义,自定义Behavior
  10. Win10 最有效去快捷方式 盾牌的脚本 不接受任何反驳任何异议