• 12迭代器


    作用:遍历我们集合的元素

    遍历Vector的迭代器

    通过调用Vector特有的方法elements方法返回古老的迭代器

    Enumeration

    有两个方法:

    boolean hasMoreElements()
    测试此枚举是否包含更多元素。
    E nextElement()
    返回此枚举的下一个元素,如果此枚举对象至少有一个元素可以提供。 
        public static void main(String[] args) {
            //创建集合对象
            Vector<String> v=new Vector<String>();
            //添加元素
            v.add("1");
            v.add("2");
            v.add("3");
            v.add("4");
            //调用方法返回古老的迭代器
            Enumeration<String> e=v.elements();
            //迭代遍历
            while(e.hasMoreElements())//判断是否还有元素
            {
                //获取元素
                String s=e.nextElement();
                System.out.println(s);
            }
        
        }
    
    }

    遍历其他集合的迭代器iterator

    底层通过挪动指针来遍历我们集合元素,遍历过程中,不能直接增删我们的原集合元素,但是可以通过调用Iterator的remove()通过改变底层比较的状态值来删除集合元素

     boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true

    Object next():返回集合里下一个元素

    void remove():删除集合里上一个next方法返回的元素

        public static void main(String[] args) {
            // TODO Auto-generated method stub
     //创建集合对象
            ArrayList<String>list=new ArrayList<String>();
            //添加元素
            list.add("1");
            list.add("3");
            list.add("2");
            //获取新的迭代器
        Iterator <String> t=list.iterator();
            //迭代遍历
            while(t.hasNext()) { //判断后面是否还有元素
                String s=t.next();
                System.out.println(s);
                t.remove();//是改变底层比较的状态值---由true变成false
            }

     

    调用iterator()方法返回Iterator接口(迭代器),这个iterator方法是由Iterable接口提供的,collection接口继承Iterable接口,但是collection接口还是顶级接口,Iterable只是拓展功能

    对象对应的类可以实现Iterabke,那么这个对象就可以进行迭代遍历,增强for循环底层是由迭代器实现的--------jdk1.5新特性。

     

    上面代码使用foreach循环来迭代访问Collection集合元素,与使用Iterator迭代访问集合元素类似

    foreach 循环中的迭代变量也不是集合元素本身,系统知识依次把集合元素的值赋给迭代变量,因此在foreach循环中修改迭代变量的值ue没有任何的实际意义,同样当使用foreach循环访问集合元素的时候,该集合也不能被改变,否则将引发ConcurrentModificationException异常,如上图1处

  • 相关阅读:
    PSR
    php类与对象
    二进制、位运算及其用处
    安装LNMP笔记
    计算机基础
    Python3编写HFS(CVE2014-6287)检测脚本
    windows和iis对应版本关系
    phpStudy8.1.0.1配置子域名多网站
    Xml外部实体注入
    xss小游戏通关-全答案
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11220303.html
Copyright © 2020-2023  润新知