for-each也是java5提供的语法糖
for-each是for循环的增强版,可以得带数组和集合,取出其中的元素。
语法:
for(元素类型 变量 : 数组/Iterable对象){
//TODO;
}
因为List和Set是Collection接口的子接口,而Collection接口继承了Iterable接口,所以针对于List和Set可以使用for-eack,而Map不行。
针对数组来说:for-each底层依然使用的是for循环迭代数组,使用数组的索引来获取每一个元素,
针对于Iterable对象来说:底层依然使用迭代器(Iterator)
某一个线程在Collectioni上进行迭代时,通常不允许另一个线程进行修改该Collection。
在迭代集合的时候,删除元素;
方式一:使用Collection对象.remove(对象)删除当前被迭代的元素。此时删除,就会报错:并发修改异常(如果集合和集合副本中的元素个数不相等就会报错)。在迭代的时候,不能使用Collection对象的remove方法。
方式二:使用迭代器的删除方法(Iterator对象.remove())方法删除 当前迭代的元素,但是此时,把元素集合和集合副本做同步操作
for-each
最新推荐文章于 2024-03-28 18:41:54 发布