• 集合的三种遍历方式


    迭代器

    /*
    迭代器 遍历集合
    
    迭代器Iterator  是一个接口
    
    作用是绑定集合 迭代集合中的元素。
    
    特殊之处: 在迭代期间可以移除迭代器指向的集合的元素
    
    boolean hasNext() 
              检查集合列表中是否还有元素未进行遍历,检查的方式从第一个依次向后检查
     Object next() 
              获得当前遍历到的元素
     void remove() 
              从迭代器指向的 collection 中移除迭代器遍历到的当前元素。 
    
    【注意:如果使用迭代器遍历集合元素,迭代器必须依附于集合。
    简单而言:有一个迭代器对象,就必须有一个与之关联的集合对象
    】
    
    【注意: 在迭代期间 集合本身不能操作移除功能】
    
    */
    
    import java.util.*;
    
    
    class IteratorDemo 
    {
        public static void main(String[] args) 
        {
            //System.out.println("Hello World!");
    
            Collection c = new ArrayList();
            c.add("蜡笔小新");
            c.add(5);
            c.add("淘气");
    
            // 将集合与迭代器绑定【】
            Iterator ite = c.iterator();
            
            while(ite.hasNext()){
                
                // 获取集合中的元素
                Object obj = ite.next();
            
                System.out.println(obj);
    
                // 移除迭代器指向的集合中的元素
                ite.remove();
    
                //c.remove("淘气");
                /*
                ConcurrentModificationException 并发修改异常
                */
            }
            System.out.println(c);
    
        }
    }

    foreach

    /*
    增强for循环进行遍历
    
    【集合修改本身元素】
    */
    
    import java.util.*;
    class ForeachDemo 
    {
        public static void main(String[] args) 
        {
            //System.out.println("Hello World!");
    
            Collection c = new ArrayList();
            c.add("路飞");
            c.add("娜美");
            c.add("鸣人");
    
            for(Object obj : c){
            //    c.remove("鸣人");// ConcurrentModificationException
                System.out.println(obj);
            }
        }
    }

    for

    /*
    普通for循环
    注意:需要获得脚标 需要将集合转化为数组
    */
    
    import java.util.*;
    
    class ForDemo 
    {
        public static void main(String[] args) 
        {
            //System.out.println("Hello World!");
            Collection c = new ArrayList();
            c.add("貂蝉");
            c.add("西施");
            c.add("王昭君");
            c.add("杨玉环");
    
            // 将集合转换为数组
            Object[] arr = c.toArray();
    
            for(int i = 0; i < arr.length; i++){
                c.remove("王昭君");
                System.out.println(arr[i]);
            }
        }
    }
  • 相关阅读:
    Cocos2dx 3.0 交流篇
    android获取ip和本机的物理地址
    半平面交总结and模板
    页面跳转的三种方式
    83. 从视图索引说Notes数据库(上)
    IE7IE8兼容性设置_服务器端设定
    [置顶] 王志成30岁前自传-我曾创造过的“第一”
    Android CTS 结果 testResult.xml 修改 fail 项 为 notExecuted 项 分析
    java android面试题分析总结
    android之写文件到sd卡
  • 原文地址:https://www.cnblogs.com/rzqz/p/7261685.html
Copyright © 2020-2023  润新知