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