在for循环中增加删除集合元素没有效果
来源:互联网 发布:php程序员工作描述 编辑:程序博客网 时间:2024/04/29 15:56
java中在增强for循环为什么不能增删集合呢?一个循环迭代,跟集合的增删改没什么关系。修改集合不是for去做的。for只管循环迭代,你在循环里边修改集合,改变集合的长度,顺序对循环都有影响
首先看下面的代码:
上述的代码按照思路应该是对的,输出的结果也应该是0
看下面实际输出的结果:
还剩余的元素个数:2
你也许会问为什么呢?因为集合的大小是动态变化的,当你删除一个元素之后,元素中的序号又重新排列,原来第二个应该删除的元素现在排在了第一个元素的位置,真正删除的却是第三个元素,依次类推,删除的是第一个、第三个、第五个、、、、如果在原来删除的代码中加入语句:System.out.println("即将删除的元素:"+list.get(i));即可验证。
加入上述语句后输出的结果:
即将删除的元素:a
即将删除的元素:c
即将删除的元素:e
还剩余的元素个数:2
解决办法:
究其原因是因为你要删除的元素往前面移动了,而你的i保存的值依旧往后走,所以如果让i不往后走,往前走一个,即可删除本来排在第二个位置的元素现在排在了第一个位置上的元素。
更改后的核心代码:
结果:
即将删除的元素:a
即将删除的元素:b
即将删除的元素:c
即将删除的元素:d
即将删除的元素:e
还剩余的元素个数:0
以上所述就是本文的全部内容了,希望大家能够喜欢。
(摘自互联网)
0 0
- 在for循环中增加删除集合元素没有效果
- 在循环中删除集合的元素
- for循环中删除集合元素的问题
- for循环删除集合元素vs迭代器删除集合元素
- Java在循环中删除集合中的元素
- 循环遍历中删除集合的元素
- java中for循环删除集合陷阱
- java中如何在循环中准确删除集合中的某个元素,并且不引起错误
- stl在循环中删除一个元素
- std::map 在循环中删除元素
- 为什么不能在ArrayList的For-Each循环中删除元素
- 在for循环遍历列表的过程中不能删除列表中的元素
- 集合循环时删除元素
- 循环删除list集合元素
- 犯了一个菜鸟必备的很郁闷的错误:for循环删除LinkedList集合中元素
- Java集合类ArrayList循环中删除特定元素
- Java集合类ArrayList循环中删除特定元素
- Java集合类ArrayList循环中删除特定元素
- LeetCode(55)- Palindrome Linked List
- Halcon学习(三)
- Android学习(一)——Androidmanifest详解
- 使用RMMapper将.plist文件转成model模型
- 关于CGImageRef
- 在for循环中增加删除集合元素没有效果
- 10 个超棒的 jQuery 视频插件
- RunLoop
- iOS获取设备信息总结
- RedHat/CentOS中安装Oracle11g
- 重复提交,加遮罩层
- int Integer 转换成String 的效率比较
- 打电话小案例
- 在iphone手机微信浏览器border-radius