可迭代是java集合框架下的所有集合类的一种共性,也就是把集合中的所有的元素遍历一遍。迭代的过程需要依赖一个迭代器对象,那么什么是迭代器呢?它应该如何使用呢?
迭代器(Iterator)模式,又叫游标(Cursor)模式,它的含义是,提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。
简单的说,迭代器就是一个接口(Iterator),实现了该接口的类就叫做可迭代类,这些类多数时候指的就是java.util包下的集合类。以下是一段使用迭代器遍历List元素的示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorTest {
public static void main(String args[]){
List<String> list=new ArrayList<String>();//创建保存字符串的List对象;
list.add("a"); //放入元素a
list.add("b"); //放入元素b
Iterator<String> it=list.iterator(); //得到list的迭代器
//调用迭代器的hasNext()方法,判断是否有下一个元素
while(it.hasNext()){
//当迭代器的下标移动一位,并得到当前位置的元素
System.out.println(it.next());
}
}
}
在迭代器Iterator接口中,有以下三个方法:
(1) hasNext():该方法用于判断集合对象是否还有下一个元素,如果已经是最后一个元素则返回false;
(2) next():把迭代器的指向移动到下一个位置,同时,该方法返回下一个元素的引用。
(3) remove():从迭代器指向的Collecion中移除迭代器返回的最后一个元素,该操作使用的较少。
总结:迭代器,提供一种访问一个集合对象中各个元素的途径,同时又不需要暴露该对象的内部细节。Java通过提供Iterable和Iterator两个接口实现集合集类的可迭代性。迭代器主要的用法就是,首先用hasNext()作为循环条件;再用next()方法得到每一个元素;最后进行相关的操作。