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循环。

原文地址:https://www.cnblogs.com/aaaazzzz/p/13757645.html