栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

List中的remove()方法的陷阱

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

List中的remove()方法的陷阱

java的list删除元素时,一般会用户list.remove(o)/remove(i)方法。在使用时容易碰陷阱,还会导致运行时报错。
初始化List,代码如下:

输出结果为[1,2,3,3,4]
1,普通for循环遍历List删除指定元素------错误的!!!!

输出结果为[1,2,3,4]
为什么元素3只删除了一个?
list调用remove(index)方法后,会移除index位置上的元素,index之后的元素就全部依次左移,即索引依次-1要保证能操作所有的数据,需要把index-1,否则原来索引为index+1的元素就无法遍历到了。
2,for循环遍历list删除元素时,让索引同步调整----正确!!!!

3,倒叙遍历list删除元素时-----正确!!!!

4,foreach遍历list删除元素-----错误!!!!

5,迭代删除list元素----正确!!!!!


总结:
1,用for循环遍历list删除元素时,需要注意索引会左移的问题。
2,list删除元素时,为避免陷阱,建议使用迭代器iterator的remove方法。
3,list删除元素时,默认按索引搜索,而不是对象删除。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531678.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号