您的位置:首页 > 编程语言 > Java开发

Java--Iterator接口和Iterable接口详解

2018-01-25 10:30 701 查看
1. Iterator接口

迭代器(Iterator)主要用来操作java中的集合对象(Collection),迭代器提供了统一的语法进行集合对象(Collection)遍历操作,
无需关心集合对象内部的实现方式,java提供了一个迭代器接口Iterator,Iterator只能向前移,无法后退;


Iterator迭代器接口声明如下:

public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}


从上面的接口可以看到Iterator迭代器接口只提供了三个无参数的方法:

hasNext --判断是否还有下一个对象,如果有,则返回true,否则false
next --返回集合的下个值,此方法只能在hasNext方法返回true时调用
remove --删除集合的当前值,此方法也只能在hasNext方法返回true时调用


2. Iterable接口

jdk1.5之后新增了Iterable接口用于支持foreach循环,Iterable接口只有一个方法,就是iterator()方法,返回集合的Iterator对象,
所有实现Iterable接口的对象都可以实现foreach循环操作;


Iterator的源码如下:

public interface Iterable<T> {
Iterator<T> iterator();
}


3.Iterable和Iterator的区别

从上面的介绍可以看到Iterator提供了一种统一遍历集合元素的方式,使用Iterator对象可以不用关心具体的集合对象的具体类型和内部实现,统一使用Iterator对象方法就可以实现;

Iterable接口是为了foreach循环设计的,Iterable接口表示可以返回Iterator对象,最终还是使用Iterator遍历;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: