Java 基础集合遍历删除 for与foreach区别
来源:互联网 发布:淘宝买手机靠谱吗 编辑:程序博客网 时间:2024/06/01 23:32
在日常Java 开发中,想要在遍历中删除一个集合中的元素,这是很常见的,但是如果用法不当,那么就会导致系统存在一些隐式bug ! 笔者今天拿list 举例来分析一下,Java 中集合应如何正确删除.
1. 错误删除方式示例:
1.1 在for each 循环体中遍历删除
1.2. for 循环 正序遍历删除
1.3. for 循环正序遍历删除2
2. 正确删除方案
1. for 循环遍历删除
2. iterator 迭代删除
3. removeAll 删除
3. 总结
1. 在删除set , collection 时也是一样的,推荐使用倒序删除方法.
2. 在只需要删除一个元素的时候,for 循环正序删除也可以实现,但是在一次for 循环中删除多个的话,就会出现问题.所以建议在删除一个元素的时候,也使用倒序删除法.
如何正确遍历删除List中的元素,你会吗?
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:
1.通过增强的for循环删除符合条件的多个元素
2.通过增强的for循环删除符合条件的一个元素
3.通过普通的for删除删除符合条件的多个元素
4.通过Iterator进行遍历删除符合条件的多个元素
for与foreach区别 参见
http://blog.csdn.net/heyuchang666/article/details/49683615
http://blog.csdn.net/u010031673/article/details/51800339
1、使用foreach来遍历集合时,集合必须实现Iterator接口,foreach就是使用Iterator接口来实现对集合的遍历的
2、在用foreach循环遍历一个集合时不能向集合中增加元素,不能从集合中删除元素,否则会抛出ConcurrentModificationException异常。抛出该异常是因为在集合内部有一个modCount变量用于记录集合中元素的个数,当向集合中增加或删除元素时,modCount也会随之变化,在遍历开始时会记录modCount的值,每次遍历元素时都会判断该变量是否发生了变化,如果发生了变化则抛出ConcurrentModificationException异常
阅读全文
0 0
- Java 基础集合遍历删除 for与foreach区别
- 数组遍历for与foreach的区别
- 黑马程序员---foreach与for遍历集合或数组的区别
- Java中foreach和for在循环遍历数组、集合方面的区别
- java foreach与for遍历效率对比
- 集合遍历:for VS foreach
- Java中for与foreach区别
- java中for与foreach的区别?
- for与foreach遍历二维数组的语法区别
- java 集合遍历Iterator/foreach
- java基础:关于遍历 -- for 、foreach 和 Iterator
- Java 基础 之 集合遍历删除
- 【JAVA】for,foreach遍历数组时候一些区别
- java 遍历 Iterator foreach for
- 【Java】集合遍历增强for和普通for的区别
- for 与 foreach主要区别
- for 与foreach 的区别
- foreach与for的区别
- Dynamic Programming:121. Best Time to Buy and Sell Stock
- Windows Practice_Dll&Hook_封装IAT Hook
- Guava 指南 之「通用 Object 方法」
- Pseudo-terminal will not be allocated because stdin is not a terminal
- 数组中的最大递增子序列(Longest Increasing Subsequence<LIS>)
- Java 基础集合遍历删除 for与foreach区别
- 算法第三周Reverse Integer[easy]
- LeetCode#670 Maximum Swap题解(C++版)
- JSON基本使用
- Python Computer Vision Programming学习笔记(一)——Python以及各Package安装
- Java的三大特征
- kali 2017 01下sublime text 3没有办法用中文输入法
- Vehicle类
- HDU 4720 Naive and Silly Muggles(圆心)