首页 > 其他分享 >03Collection的遍历方式二

03Collection的遍历方式二

时间:2023-10-30 13:13:31浏览次数:39  
标签:遍历 String 方式 add Collection coll 03Collection 集合

二、增强for遍历

  • 增强for的底层就是迭代器,为了简化迭代器的代码书写的。

  • 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器

  • 所有的单列表集合和数组才能用增强for进行遍历

  • 格式:

    for(元素的数据类型 变量名 : 数组或者集合){
        
    }
    
    for(String s : list){
        System.out.println(s);
    }
    

    案例:

    package com.mycollection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class A06_CollectionDemo6 {
    
        public static void main(String[] args) {
           /*   Collection系列集合三种通用遍历方式:
                1.迭代器遍历
                2.增强for循环
                3.lambda表达式遍历
    
                增强for循环格式:
                for(元素的数据类型 变量名 : 集合/数组){
    
                }
    
                快速生成方式:集合名字+for 回车
            */
            //1.创建集合并添加元素
            Collection<String> coll = new ArrayList<>();
            coll.add("zhangsan");
            coll.add("lisi");
            coll.add("wangwu");
            //2.利用增强for进行遍历
            //注意点:
            //s其实就是一个第三方变量,在循环的过程中会依次表示集合中的每一个数据。
            for (String s : coll) {
                System.out.println(s);
            }
    
            //细节:修改增强for中的变量,不会改变集合中原本的数据
            for (String s : coll) {
                s="qqq";
            }
            System.out.println(coll);
        }
    }
    

    运行结果:

    1

三 、lambda表达式遍历

  • 得益于JDK8新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

    方法名称 说明
    default void forEach(Consumer<? super T> action): 结合lambda遍历集合

    案例:

    package com.mycollection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.function.Consumer;
    
    public class A07_CollectionDemo7 {
    
        public static void main(String[] args) {
           /*   Collection系列集合三种通用遍历方式:
                1.迭代器遍历
                2.增强for循环
                3.lambda表达式遍历
    
                lambda表达式:
                default void forEach(Consumer <? super T> action):
    
                consumer n.消费者,顾客,用户;食用者,使用者,消耗者
            */
            //1.创建集合并添加元素
            Collection<String> coll = new ArrayList<>();
            coll.add("zhangsan");
            coll.add("lisi");
            coll.add("wangwu");
            //2.利用匿名类内部类形式
            //底层原理
            //其实也会自己遍历集合,依次得到每一个元素
            //把得到的每个元素,传递到下面的accept
            //s依次表示集合中的每个元素。
            coll.forEach(new Consumer<String>() {  //new一个对象
                @Override
                public void accept(String s) {
                    System.out.println(s);
                }
            });
            //()->{} 形参->方法体
            coll.forEach((String s) -> {System.out.println(s);});
    
            coll.forEach(s -> System.out.println(s));
        }
    }
    

    运行结果:

    2

四、总结

  1. Collection 是单列集合的顶层接口,所有的方法被List和Set系列集合共享。
  2. 常见成员方法:
    • add、clear、remove、contains、isEmpty、size
  3. 三种通用的遍历方式:
    • 迭代器:在遍历的过程中需要删除元素,请使用迭代器。
    • 增强for、Lambda:仅仅想遍历,那么使用增强for、Lambda表达式。

标签:遍历,String,方式,add,Collection,coll,03Collection,集合
From: https://www.cnblogs.com/ahbzbn/p/17797566.html

相关文章

  • 【java基础-实战3】list遍历时删除元素的方法
    在实际的业务开发中,容器的遍历可以说是非常非常常见的场景了,遍历删除呢,用的机会也比较多,那么有哪几种删除元素的方法呢?你用对了吗~本文循序渐进,先说几种容易出问题的方法,再引出几种比较可靠的方法~首先,初始化一个数组,用于后面的事例演示:List<Integer>list=newArrayList<>();......
  • 集群/堆叠的常用部署实施方式,你会吗?
    你们好,我的网工朋友。交换机的连接方式大家应该都知道吧,一共有三种,分别是:级联、堆叠和集群。级联一般用来实现多台交换机之间的互相连接。堆叠和集群,就总有网工把这两给搞迷糊了。堆叠就是将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上虚拟成一台交换设备,作为一个整体......
  • 算法:实现中序遍历(3种方法图例详解,小白也能看懂)
     中序遍历:左->中 ->右练习地址:力扣(LeetCode)官网-全球极客挚爱的技术成长平台1、递归法 #Definitionforabinarytreenode.classTreeNode(object):def__init__(self,val=0,left=None,right=None):self.val=valself.left=left......
  • 浅析SpringBoot加载配置的6种方式
    从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者抓狂~今天带大家简单回顾一下这六种的使用方式:说明Environment对象Environment是springboot核心的环境配置接口,它提供了简单的方法来访问应用程序属性,包括系统属......
  • CentOS7 以rpm包方式升级内核
    RPM包方式安装后,查看内核启动序号:[root@localhost~]awk-F\''$1=="menuentry"{print$2}'/etc/grub2.cfgCentOSLinux(4.4.179-1.el7.elrepo.x86_64)7(Core)CentOSLinux(3.10.0-693.el7.x86_64)7(Core)CentOSLinux(0-rescue-6d4c599606814867814......
  • JS点击空白关闭弹窗的方式
    12$(document).mouseup(function(e){3varpop=$('popDialog');4if(!pop.is(e.target)&&pop.has(e.target).length===0){5//可以在这里关闭弹窗6somecode...7}8});9判断点击事件发生在区域外的两个条件:点......
  • 嵌入式硬件中常见的100种硬件选型方式
    1请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌)。电阻:美国:AVX、VISHAY威世日本:KOA兴亚、Kyocera京瓷、muRata村田、Panasonic松下、ROHM罗姆、susumu、TDK台湾:LIZ丽智、PHYCOM飞元、RALEC旺诠、ROYALOHM厚生、SUPEROHM美隆、TA-I大毅、TMTEC泰铭、TOK......
  • 嵌入式硬件库的基本操作方式与分析
    本次要介绍的开源软件是c-periphery:https://github.com/vsergeev/c-periphery一个用C语言编写的硬件外设访问库。我们可以用它来读写Serial、SPI、I2C等,非常适合在嵌入式产品上使用。我们可以基于它优秀的代码框架,不断地扩展出更多的功能模块,最终形成自己产品适用的Linux硬......
  • Nacos注册中心有几种调用方式?
    SpringCloudAlibabaNacos作为近几年最热门的注册中心和配置中心,也被国内无数公司所使用,今天我们就来看下Nacos作为注册中心时,调用它的接口有几种方式?1.什么是注册中心?注册中心(Registry)是一种用于服务发现和服务注册的分布式系统组件。它是在微服务架构中起关键作用的一部......
  • Java基础 获取 class 对象的三种方式
    ①Class.forName("全类名")  →  最为常用全类名:包名+类名Class的首字母是大写的,所以是一个类名,是用来描述字节码文件的。这个类里面有一个静态方法叫 forName,参数可以传递一个类的全类名,可以获取到参数的字节码文件对象 ②类名.class  →  这种方式更......