关于Iterator接口(迭代器)
2016-08-31 22:39
218 查看
public interface Iterator
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。
迭代器与枚举有两点不同:
1.迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
2.方法名称得到了改进
所有是实现Collection接口的容器类都有一个iterator方法用来返回一个iterator接口的对象。
iterator接口中只有三个方法:
boolean hasNext(); 判断游标右边是否有元素
Object next(); 返回游标右边的元素并将游标移动到下一位
void remove(); 删除游标左边的元素,在执行完next操作之后该操作只能执行一次。
实例
与增强的for循环比较
增强for循环的缺陷
1.数组:不能方便的访问数组的下标值
2.集合:与iterator相比不能方便的删除集合中的内容。在内部也只是调用Iterator
一般建议使用Iterator
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。
迭代器与枚举有两点不同:
1.迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
2.方法名称得到了改进
所有是实现Collection接口的容器类都有一个iterator方法用来返回一个iterator接口的对象。
iterator接口中只有三个方法:
boolean hasNext(); 判断游标右边是否有元素
Object next(); 返回游标右边的元素并将游标移动到下一位
void remove(); 删除游标左边的元素,在执行完next操作之后该操作只能执行一次。
实例
public class iteratorDemo2 { public static void main(String[] args) { Collection c = new HashSet(); c.add("ni"); c.add("nihao"); c.add("hello"); System.out.println(c); Iterator i = c.iterator(); while (i.hasNext()){ //遍历,当存在下一个元素的时候返回true String str =(String) i.next(); //i.next();获取下一个元素并强制转换成String类型 if(str.length() < 3){ //当元素的长度小于3 移除 i.remove(); //c.remove(str); //如果换成c.remove(name);会产生例外; //java.util.ConcurrentModificationException //因为在循环的内部,Iterator会执行锁定,不让外部进行访问 } } System.out.println(c); } }
与增强的for循环比较
增强for循环的缺陷
1.数组:不能方便的访问数组的下标值
2.集合:与iterator相比不能方便的删除集合中的内容。在内部也只是调用Iterator
一般建议使用Iterator
相关文章推荐
- 关于迭代器(iterator)和指针的思考
- Collection 接口的 迭代器 Iterator 的使用举例
- JDK源码阅读之Iterator迭代器接口
- 3.Iterator(迭代器)接口
- Java-Iterator(迭代器)接口和泛型
- 关于Iterator(迭代器)
- 一个菜鸟java码农的成长之路(2):迭代器Iterator接口概述
- Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别
- 黑马程序员---集合体系的继承关系图。顶层接口Collection中的方法,迭代器Iterator使用和原理,List派系特点
- 迭代器Iterator接口
- 《GOF设计模式》—迭代器 (ITERATOR)—Delphi源码示例:迭代器接口
- 关于迭代器(iterator)和指针的思考
- 关于类型判断符is和迭代器接口实现中yield return的使用
- 关于Iterator 接口问题
- 预定义接口-迭代器Iterator
- 关于迭代器(iterator)和指针的思考
- PHP Iterator(迭代器)接口
- 迭代器接口IteratorAggregate 与类 ArrayIterator(转)
- 关于iterator迭代器的问题
- JAVA基础再回首(十四)——集合框架、Collection接口、迭代器Iterator、List接口、ListIterator列表迭代器