Iterator接口

Iterator接口

概述:对 collection 进行迭代的迭代器,依赖于集合而存在

迭代器遍历是Collection集合所特有的遍历方式 得是可遍历的对象
package com.shujia.day11;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class IteratorDemo {
    public static void main(String[] args) {
        Collection c1=new ArrayList();
        c1.add("java");
        c1.add("maven");
        c1.add("clickhouse");
        System.out.println("c1"+c1);
        // Object[] toArray() 将集合转成数组,遍历数组,得到集合中每个元素
        Object[] arr=c1.toArray();
        for (int i=0;i<arr.length;i++){
            //向下转型
            String s=(String) arr[i];
            System.out.println(s+","+s.length());
        }
        //获取迭代器对象,其中存储了集合元素
        //因为我这里的c1实际上堆内存是ArrayList的对象,
        //所以调用iterator()底层返回的是一个ArrayList类中的私有成员内部类Itr的对象
        Iterator iterator=c1.iterator();
        /*
        public Iterator<E> iterator() {
                return new Itr();
         */
        //在取下一个元素之前,先判断一下,下一个位置上有没有元素,如果有,则next(),无则不获取
//        if(iterator.hasNext()){
//            System.out.println(iterator.next());
//        }
//        if(iterator.hasNext()){
//            System.out.println(iterator.next());
//        }
//        if(iterator.hasNext()){
//            System.out.println(iterator.next());
//        }
//        //上面的方法冗余了,可以改进
        //在不知道次数的情况下,获取数据,优先使用while循环
        while(iterator.hasNext()){
            String s=(String) iterator.next();
            System.out.println(s+","+s.length());
        }
    }
}

posted @ 2024-03-06 14:39  peculiar-  阅读(20)  评论(0)    收藏  举报