zoukankan      html  css  js  c++  java
  • Java 迭代器须知 | “for each”与迭代器的关系

      Iterator接口包含4个方法:

      通过反复调用next方法就可以逐个访问集合中的每个元素。需要注意,如果到达了集合的末尾,再次调用next方法将会抛出一个NoSuchElementException,因此,通常遍历在调用next方法前先调用hasNext方法。

      如果想要遍历集合中的所有元素,可以请求一个迭代器,并在hasNext方法返回true时反复地调用next方法,如:

     1 public static void main(String[] args) {
     2         List<String> nameList = new LinkedList<>();
     3         nameList.add("aaa");
     4         nameList.add("bbb");
     5         nameList.add("ccc");
     6         nameList.add("ddd");
     7         Iterator<String> nameIterator = nameList.iterator();
     8         while (nameIterator.hasNext()) {
     9             System.out.println(nameIterator.next());
    10             //nameIterator.remove();
    11         }
    12     }

      也可以使用“for each”更加简练地实现同样地操作:

     1     public static void main(String[] args) {
     2         List<String> nameList = new LinkedList<>();
     3         nameList.add("aaa");
     4         nameList.add("bbb");
     5         nameList.add("ccc");
     6         nameList.add("ddd");
     7         for (String name : nameList) {
     8             System.out.println(name);
     9         }
    10     }

      事实上,“for each”会被编译器翻译为带有迭代器地循环。

  • 相关阅读:
    AngularJs $location 和 $window
    AngularJS——自定义服务详解(factory、service、provider)
    angularAMD+requireJs
    angular ui-router时要使用html5Mode=true
    CSS3的calc()使用
    React Ajax this.IsMounted() is not a function
    css有用的代码片段
    8908
    454
    234
  • 原文地址:https://www.cnblogs.com/XiaoZhengYu/p/11938588.html
Copyright © 2011-2022 走看看