示例如下:

public static void main(String args[])
{
List list = new LinkedList();
list.add("aa");
list.add("bb");
for(String item:list)
{
if("bb".equals(item))
list.add("cc");
}
}

我们看一下上面例子的 反编译代码:

public static void main(String args[])
{
List list = new LinkedList();
list.add("aa");
list.add("bb");
for(Iterator iterator = list.iterator(); iterator.hasNext();)
{
String item = (String)iterator.next();
if("bb".equals(item))
list.add("cc");
}
}

 

for循环中使用iterator遍历,在循环中获取元素的时候,可以直接迭代出,而使用get则会遍历一遍获取对应的元素。

使用第二种方法遍历更快。

使用第二种方法的好处是可以在遍历的时候可以删除集合中的元素,如果在for循环中,是不能删除元素的。