失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java中List遍历删除元素 Android进阶之光

java中List遍历删除元素 Android进阶之光

时间:2018-12-30 09:52:21

相关推荐

java中List遍历删除元素 Android进阶之光

一、结缘

实话说,最开始刷题的时候,刷的是 LeetCode,后来才注意到了剑指 offer 的存在,最开始也是听别人说的,剑指 offer 在面试过程中出现的概率很大,就去尝试将其都做了一遍,做的过程中发现,其实有一部分题目与 LeetCode 有重合,但是更像是 LeetCode 经典题目的集合,更具有代表性。

最开始刷过一遍剑指 offer 后,其实印象并不深,直到我参加了 年的秋招面试,才深刻的意识到剑指 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优秀开源项目:

/public/P7/Android/git

最后

有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~

偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!

blic/P7/Android/git**

最后

有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~

偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!

[外链图片转存中…(img-xflKfDmg-1649665746000)]

如果觉得《java中List遍历删除元素 Android进阶之光》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。