Java集合遍历
迭代器:
集合提供了一个迭代器来遍历其所有元素。迭代器可以对集合执行:
- 检查是否有尚未访问的元素。hasNext()
- 访问集合中的下一个元素。next()
- 删除集合的最后访问元素。remove()
remove()
方法删除 next()
方法最后返回的元素。每次调用next()方法只能调用一次 remove()
方法。
如果对于每个 next()
方法或在第一次调用next()之前被多次调用 remove()
方法,它会抛出一个 IllegalStateException
异常。
对 remove()
方法的支持是可选的。remove()
方法可能会抛出一个 UnsupportedOperationException
异常。
forEachRemaining()方法对集合中尚未由迭代器访问的每个元素执行操作。
action指定为 Consumer
。
迭代器注意事项
迭代器是一次性对象。我们不能重置迭代器,它不能被重用。
要再次遍历同一集合的元素,请通过调用集合的iterator()方法来创建一个新的Iterator。
在迭代器迭代的过程中,不允许使用集合对象改变集合的元素的个数,否则会报错,如果需要更改只能通过迭代器中的方法进行修改。
使用for-each循环
可以使用for-each循环遍历任何实现类实现Iterable接口的集合。
for-each循环的一般语法如下:
Collection<T> yourCollection = ;
for(T element : yourCollection) {
}
在幕后,for-each循环获取迭代器并调用hasNext()和next()方法。
for-each注意事项
for-each循环有几个限制。
- 不能使用for-each循环从集合中删除元素,否则抛出ConcurrentModificationException异常。
- 对于for-each循环,不能从集合的中间开始,for-each循环不提供访问先前访问的元素的方式。
使用forEach()方法
Iterable接口包含一个新的 forEach(Consumer action)
方法。
该方法遍历所有元素并应用操作。forEach()
方法在从 Collection
接口继承的所有集合类型中都可用。
上一篇: Python学习日记——day03
下一篇: python语言基础+课后练习day03