• Collection集合


    1.Collection & Map 的主要实现类

    2.迭代器Iterator

    3.Iterator执行原理

    4.代码

    /*
            集合的遍历 : 使用迭代器Iterator
            内部方法 : hasNext() :如果有下一个元素, 就返回true
                       next() :返回下一个元素
             */
            Collection collection = new ArrayList();
            ((ArrayList) collection).add(123);
            ((ArrayList) collection).add("ABC");
            ((ArrayList) collection).add(false);
            ((ArrayList) collection).add(4546);
            ((ArrayList) collection).add("DEF");
            Iterator iterator = collection.iterator();
    
            //方式一 : for (不推荐)
            for (int i=0;i < collection.size() ; i++){
                System.out.println(iterator.next());
            }
    
            //方式二: while (推荐)
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }
    
            //两种错误的遍历方式
            //方式一 :
            Iterator iterator1 = collection.iterator();
             while (iterator1.next()!=null){
                 System.out.println(iterator.next());
             }
             //这种写法会导致跳着输出,且报异常
    
            //方式二:
            while (collection.iterator().hasNext()){
                System.out.println(collection.iterator().next());
            }
            //这种写法会导致重复输出第一个元素
    
            //remove() 注意 : 如果还没有调用next()或者刚调完remove(),就调用remove(), 会报IllegalStateException;
            Iterator iterator2 = collection.iterator();
            while (iterator2.hasNext()){
                Object next = iterator2.next();
                if ("ABC".equals(next)){
                    iterator2.remove();
                }
            }
            System.out.println(collection);
            //如果执行完一次遍历后 , 再遍历需要重新创建Iterator

    5.Foreach遍历集合

    Collection collection = new ArrayList();
            ((ArrayList) collection).add(123);
            ((ArrayList) collection).add("ABC");
            ((ArrayList) collection).add(false);
            ((ArrayList) collection).add(4546);
            ((ArrayList) collection).add("DEF");
    
            //foreach遍历 : 底层调用的还是Iterator
            for (Object o : collection) {
                System.out.println(o);
            }

    6.Collections : 集合工具类

  • 相关阅读:
    获取配置文件
    微服务项目(1)
    string,stringbuffer,stringbuilder区别?
    异常
    IDEA结合Maven的profile构建不同开发环境(SpringBoot)
    出现org.springframework.beans.factory.NoSuchBeanDefinitionException 的解决思路
    Spring中的@Transactional(rollbackFor = Exception.class)属性详解
    Ubuntu安装飞鸽传输
    shell 创建带参数的命令方法
    python查询mysql中文乱码问题
  • 原文地址:https://www.cnblogs.com/Anonymity-zhang/p/14373862.html
Copyright © 2020-2023  润新知