Java 中的迭代器与 forEach
java programming java 8object oriented programming
可以使用两种方法轻松地迭代集合。
使用 for-Each 循环 − 使用 foreach 循环并使用对象访问数组。
使用迭代器 − 使用 foreach 循环并使用对象访问数组。
区别
ConcurrentModificationException − 使用 for-Each 循环时,如果修改了对象,则可能会引发 ConcurrentModificationException。使用迭代器可以避免此问题。
大小检查 − 使用 for-Each 时,无需进行大小检查。如果使用迭代器时 hasNext() 函数使用不当,则可能会引发 NoSuchElementException。
性能 − 两种情况下的性能相似。
以下是使用上述方法的示例。
示例
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Tester { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1);list.add(2);list.add(3); list.add(4);list.add(5);list.add(6); System.out.println("List: "); //Way 1: for (int i : list) { System.out.print(i + " "); } Iterator<Integer> listIterator = list.iterator(); System.out.println("
List: "); while(listIterator.hasNext()){ System.out.print(listIterator.next() + " "); } } }
输出
List: 1 2 3 4 5 6 List: 1 2 3 4 5 6