• Java日志第31天 2020.8.5


    Iterator迭代器

    java.util.Interator接口是一个迭代器,可以对集合进行遍历。

    有两个常用的方法:

    1. boolean hasNext()  如果仍有元素可以迭代,则返回true。

      判断集合中还有没有下一个元素,有就返回true,没有就返回false。

    2. E next()  返回迭代的下一个元素

      取出集合中的下一个元素

    Interator迭代器,是一个接口,我们无法直接使用。需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊:

    Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象

    Iterator<E> iterator() 返回在此collection的元素上进行迭代的迭代器

    迭代器使用步骤

    1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)

    2.使用Iterator接口中的方法hasNext判断还有没有下一个元素

    3.使用Iterator接口中的方法next取出集合中的下一个元素

    实例:

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class Demo01Iterator {
        public static void main(String[] args) {
            Collection<String> coll = new ArrayList<>();
    
            coll.add("迪丽热巴");
            coll.add("古力娜扎");
            coll.add("马尔扎哈");
            coll.add("撒扬娜拉");
    
            Iterator<String> it = coll.iterator();
    
            boolean b1 = it.hasNext();
            System.out.println(b1);
            String n1 = it.next();
            System.out.println(n1);
    
            boolean b2 = it.hasNext();
            System.out.println(b2);
            String n2 = it.next();
            System.out.println(n2);
    
            boolean b3 = it.hasNext();
            System.out.println(b3);
            String n3 = it.next();
            System.out.println(n3);
    
            boolean b4 = it.hasNext();
            System.out.println(b4);
            String n4 = it.next();
            System.out.println(n4);
    
            boolean b5 = it.hasNext();//false
            System.out.println(b5);
        }
    }

    有上述实例可看出,有很多重复代码,我们可以通过循环来优化程序。

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class Demo01Iterator {
        public static void main(String[] args) {
            Collection<String> coll = new ArrayList<>();
    
            coll.add("迪丽热巴");
            coll.add("古力娜扎");
            coll.add("马尔扎哈");
            coll.add("撒扬娜拉");
    
            Iterator<String> it = coll.iterator();
    
            /*
            不知道循环次数
            可以考虑使用for循环
             */
            while(it.hasNext()){
                System.out.println(it.next());
            }
    
            System.out.println("===================");
    
            /*
            for循环
             */
            for(Iterator<String> it2 = coll.iterator(); it2.hasNext();){
                System.out.println(it2.next());
            }
        }
    }

    增强for循环

    增强for循环(也称for each循环),专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

    格式:

    for(集合/数组的数据类型 变量名 : 结合名/数组名){

      System.out.println(变量名);

    }

    import java.util.ArrayList;
    
    public class Demo01Foreach {
    
        public static void main(String[] args) {
            demo01();
    
            System.out.println("=========");
            demo02();
        }
    
        //数组遍历
        private static void demo01() {
            int[] arr = {1, 2, 3, 4, 5};
            for(int a : arr){
                System.out.println(a);
            }
        }
        
        //集合遍历
        private static void demo02(){
            ArrayList<String> list = new ArrayList<>();
            list.add("迪丽热巴");
            list.add("古力娜扎");
            list.add("马尔扎哈");
            
            for(String l : list){
                System.out.println(l);
            }
        }
    }
  • 相关阅读:
    ubuntu中KDE与GNOME安装切换
    前向算法的数学意义上的实现
    题目1023:EXCEL排序
    题目1022:游船出租
    php notice提示
    Php显示中文时乱码
    题目1021:统计字符
    题目1020:最小长方形
    题目1013:开门人和关门人
    题目1032:ZOJ
  • 原文地址:https://www.cnblogs.com/Gazikel/p/13442629.html
Copyright © 2020-2023  润新知