迭代器的简单说明

来源:互联网 发布:21天学通java 买第几版 编辑:程序博客网 时间:2024/06/05 10:51
迭代器对象:
Iterator:迭代器对象,只能从上往下迭代;
Boolean hasNext():判断指针后是否有下一个元素
Object next():获取指针的下一个元素,并且移动指针
ListIterator:是Iterator接口的子接口,支持双向迭代,从上往下迭代,或从下往上迭代
Enumeration:古老的迭代器对象,现在已经被Iterator取代,适用于古老的Vector类。


深入分析for-each和迭代器:
1、foreach可以操作数组:底层依然采用for循环,索引来获取数组;
2、foreach可以操作Iterable的实例:底层其实采用Itertor(迭代器)。

for-each语法格式:
for(类型 变量:数组名/Iterable的实例){
//TODO
}


接下来查看一下集合元素的迭代/遍历:


//集合元素的迭代/遍历操作public class IteratorDemo {public static void main(String[] args) {List list = new ArrayList();list.add("A");list.add("B");list.add("C");//方式1:for循环for (int index = 0; index < list.size(); index++) {Object ele = list.get(index);//取出指定索引位置的元素System.out.print(ele);}System.out.println();System.out.println("--------------------------");//方式2:for-each增强for循环for (Object object : list) {System.out.print(object);}System.out.println();System.out.println("--------------------------");//方式3:使用while循环操作迭代器IteratorIterator it = list.iterator();while(it.hasNext()){System.out.print(it.next());}System.out.println();System.out.println("--------------------------");//方式4:使用for循环来曹组迭代器Iteratorfor (Iterator it1 = list.iterator(); it1.hasNext();) {System.out.print(it1.next());}System.out.println();System.out.println("--------古老的分割线-------");//还有一种非常古老的迭代器Vector v = new Vector();v.add("A");v.add("B");v.add("C");//古老的迭代器对象Enumeration en = v.elements();while(en.hasMoreElements()){Object ele = en.nextElement();System.out.print(ele);}}}



其实通过反编译,你会发现,for-each语法其实也是语法糖,其底层依旧使用for循环:



当需要变迭代集合元素,边删除指定元素时:此时只能使用迭代器。
而且只能使用迭代器对象的remove方法。
原创粉丝点击