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

相关文章