zoukankan      html  css  js  c++  java
  • 集合的三种遍历方式

    迭代器

    /*
    迭代器 遍历集合
    
    迭代器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]);
            }
        }
    }
  • 相关阅读:
    elform 校验
    深入理解ES6系列
    【数据结构&算法】10串基础&KMP算法源码
    【数据结构&算法】13赫夫曼树&赫夫曼编码
    【RTOS】FreeRTOS中的任务堆栈溢出检测机制
    【数据结构&算法】11树基础&二叉树遍历
    【环境】解决linux与windows之间的复制粘贴
    【数据结构&算法】09队列概念&参考源码
    【网络基础】内网IP与外网IP
    【数据结构&算法】12线索二叉树
  • 原文地址:https://www.cnblogs.com/rzqz/p/7261685.html
Copyright © 2011-2022 走看看