zoukankan      html  css  js  c++  java
  • Iterable(迭代器)的用法

    一.前言

       在开发中,经常使用的还是for-each循环来遍历来Collection,不经常使用Iterable(迭代器)的,下面记录一下terable是一般用法:

    二.说明

        迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

        Java中的Iterator功能比较简单,并且只能单向移动:

      (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

      (2) 使用next()获得序列中的下一个元素。

      (3) 使用hasNext()检查序列中是否还有元素。

      (4) 使用remove()将迭代器新返回的元素删除。

      Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

    三、遍历方法

    在Java中,我们可以对List集合进行如下几种方式的遍历:

     1 List<Integer> list = new ArrayList<>();
     2 list.add(5);
     3 list.add(23);
     4 list.add(42);
     5 for (int i = 0; i < list.size(); i++) {
     6     System.out.print(list.get(i) + ",");
     7 }
     8 
     9 Iterator it = list.iterator();
    10 while (it.hasNext()) {
    11     System.out.print(it.next() + ",");
    12 }
    13 
    14 for (Integer i : list) {
    15     System.out.print(i + ",");
    16 }

    第一种就是普通的for循环,第二种为迭代器遍历,第三种是for each循环。后面两种方式涉及到Java中的iterator和iterable对象,接下来我们来看看这两个对象的区别以及如何在自定义类中实现for each循环。

  • 相关阅读:
    用新版本的job打成jar包在终端运行mapreduce程序遇到的问题 找不到Map class?
    在map端使用关联数组实现wordcount
    基数排序c++实现
    (sql补充)关于锁
    (sql server补充)关于事务
    (sql补充)关于游标
    java api文档的阅读技巧
    android开发学习路线图
    (sql补充)关于索引
    Android开发之学习路线
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/13757645.html
Copyright © 2011-2022 走看看