zoukankan      html  css  js  c++  java
  • java-集合框架3-迭代器的使用

    package cn.burce.iterator;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /*
     * 集合中的迭代器 获取集合中的元素
     * 接口Iterator:两个抽象方法
     * Boolean hasNext()判断集合中还有没有可以取出的元素,如果有返还True
     * next()取出集合的下一个元素
     * Iterator接口,需要实现类
     * Collection接口定义方法Iterator Iterator()
     * ArrayList 重写Iterator(),返回了Iterator接口实现类的对象
     * 使用ArrayList集合的对象
     * Iterator it = array.iterator(),运行结果就是Iterator接口实现类的对象
     * it是接口的实现类对象,调用方法hasNext()和next()集合元素迭代
     */
    public class IteratorLearn {
        public static void main(String[] args) {
            Collection<String> c = new ArrayList<String>();
            c.add("小明");
            c.add("小军");
            c.add("小和");
            c.add("小啊");
            c.add("123");
            // 迭代器对集合ArrayList中的元素取出
            // 调用集合的方法iterator()获取出,Iterator接口的是实现类对象
            Iterator<String> it = c.iterator();
            // 接口实现类对象,调用方法hasNext()判断集合中是否有元素
            // 并用next()取出元素
            while (it.hasNext())
            {
                System.out.println(it.next());
            }
            System.out.println("--------------------------");
            for (Iterator<String> it1 = c.iterator(); it1.hasNext();)
            {
                System.out.println(it1.next());
            }
            System.out.println("-----------------------------");
            // 集合可以存储任何类型的对象
            // 集合中不指定数据类型,那就表示什么都可以存储
            Collection c1 = new ArrayList();
            c1.add("我");
            c1.add("wwwwww");
            // 迭代器获取
            Iterator it2 = c1.iterator();
            while (it2.hasNext())
            {
                System.out.println(it2.next());// 打印的这个是Object类型
                String s = (String) it2.next();// 取长度需要向下转型
                System.out.println(s.length());// 尽量加数据类型
            }
        }
    }

    package cn.burce.List;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class ListDemo1 {
        /*
         * 迭代器的并发异常 java.util.ConcurrentModificationException
         * 不能修改集合长度
         */
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("abc1");
            list.add("abc2");
            list.add("abc3");
            list.add("abc4");
            // 使用迭代器遍历,获取时候判断集合中是否有abc3,有就添加ABC3
            Iterator<String> it = list.iterator();
            while (it.hasNext())
            {
                String s = it.next();
                if (s.equals("abc3"))
                {
                    list.add("ABC3");
                }
                System.out.println(s);
            }
        }
    }

  • 相关阅读:
    读入输出优化
    码表
    windows下bat批处理实现守护进程(有日志)
    cmd批处理常用符号详解
    批处理之 for/f 详解
    WINDOWS XP中用命令行管理用户 net user命令
    VacmMIB
    工作遇到
    snmp之GenericAddress
    snmp4j 之 ArgumentParser
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13379627.html
Copyright © 2011-2022 走看看