Collection 集合的遍历

PyTorch实战(7)——循环神经网络 本节介绍了循环神经网络 (RNN) 及其在序列数据处理中的应用。首先对比了卷积神经网络 (CNN) 与 RNN 的差异,指出 RNN 通过循环连接建模时序依赖关系。随后详细梳理了 RNN 的发展历程,包括基础 RNN、双向 RNN、LSTM、GRU 等变体的结构特点及改进动机,其中 LSTM 通过门控机制解决长程依赖问题,GRU 则进一步简化结构。接着通过 IMDb 情感分析实战,演示了如何使用 PyTorch 实现文本预处理、RNN 模型构建及训练评估流程,最后探讨了注意力机制如何提升 RNN 性能。 阅读详情

Collection集合的遍历方式主要有三种:

        迭代器遍历

        增强for遍历

        Lambda表达式遍历

 

我们平时最常用到的 普通for遍历 怎么不见了呢?

        这是因为普通for遍历只能用在 List 集合中,我们还需要考虑到 无索引 的 Set 结合 

 

迭代器遍历

 迭代器 有一个最大的特点 -- 不依赖索引 ,因此 Set 集合也可以使用

迭代器在Java中的类是 Iterator ,迭代器是集合专用的遍历方式

Collection中有一个方法 Iterator<E> iterator() --  返回此集合中元素的迭代器

Iterator中的常用方法

  • boolean hasNext() --  判断当前位置是否有元素可以被取出
  • E next(): -- 获取当前位置的元素,将迭代器对象移向下一个索引位置  

加下来看案例

public class IteratorDemo1 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> c = new ArrayList<>();

        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        c.add("javaee");

        //Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
        Iterator<String> it = c.iterator();

        //用while循环改进元素的判断和获取
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }
}

迭代器遍历完毕后,不会复位,如果要再次遍历,就再重新获取一个迭代器对象

我们知道,当用 普通for 对集合进行遍历删除时(如:删除集合中的所有 "A" 元素),容易出错

如果是迭代器,就不会出现该问题,如下

public class IteratorDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");

        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String s = it.next();
            if("b".equals(s)){
                //指向谁,那么此时就删除谁.
                it.remove();
            }
        }
        System.out.println(list);
    }
}

增强for遍历(foreach)

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

所有的单列结合 和 数组 才能用增强for遍历,双列集合不行 

使用方法如下:

public class MyCollectonDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list =  new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");

        //1,数据类型一定是集合或者数组中元素的类型
        //2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
        //3,list就是要遍历的集合或者数组
        for(String str : list){
            System.out.println(str);
        }
    }
}

注意:修改增强for中的变量,不会改变集合中原本的数据,如下代码

public class MyCollectonDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list =  new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");


        for(String str : list){
            str="d";
        }
    }
}

结束后,list中的值仍然为 "a","b","c" ,此处的str可以类比形参的概念

Lambda表达式遍历

利用forEach方法,再结合lambda表达式的方式进行遍历  (注意此处forEach方法与增强for遍历的foreach区分) 

我们看下 ArrayList 的forEach方法源码

我们可以看到入参是Consumer,我们继续追踪

我们可以看到 Consumer 中有@FunctionInterface注解,表明是函数式接口,因此我们可以使用lambda表达式,并要实现 accept 方法

我们再看ArrayList的forEach方法源码,核心的代码就是一个 普通for(其他集合的实现方式不一定是),在 for 中逐个遍历出元素,然后传给 accept 方法,在accept中对元素逐个进行操作

 因此,使用方法如下

public class A07_CollectionDemo7 {
    public static void main(String[] args) {

        Collection<String> coll = new ArrayList<>();
        coll.add("zhangsan");
        coll.add("lisi");
        coll.add("wangwu");

        coll.forEach(s -> System.out.println(s));
    }
}
UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型 本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。 阅读详情

相关推荐

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

Collection遍历方式

Collection遍历方式

小何的博客 1117

光学系统设计:波段、光源、光纤与探测器匹配指南

在光学测量和光纤通信系统中,波段、光源、光纤和探测器的匹配关系是系统设计的核心基础。波段指电磁波谱中的特定波长范围,光源负责产生特定波长的光信号,光纤作为传输介质需要与波长匹配以降低损耗,探测器则负责将光信号转换为电信号。理解各组件的光谱特性对于系统性能至关重要,例如在850nm短波长多模光纤系统中,VCSEL激光器与PIN光电二极管的组合能提供最佳性价比。典型应用场景包括生物医学成像、光纤通信和气体传感,其中光谱重叠优化、模场直径匹配和偏振特性协调是关键技术要点。通过实测数据对比不同组合的传输性能,可以为

weixin_33812433的博客 338

Java39——java集合之Iterator接口与foreach循环

1.遍历Collection的两种方式: ① 使用迭代器Iterator ② foreach循环(或增强for循环) 2.java.utils包下定义的迭代器接口:Iterator 2.1说明: Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。 GOF给迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。 2.2作用:遍历集合Collectiton元素 2....

youhaitao_do的博客 553

基于Unidbg的小红书加密协议动态分析与算法还原实战

在移动应用安全领域,加密协议与签名机制是保障数据传输安全、实现客户端身份验证的核心技术。其原理通常涉及哈希算法、对称/非对称加密以及自定义的混淆逻辑,旨在防止请求被篡改或重放。理解这些协议对于安全研究、风控策略制定及合规的数据交互分析具有重要价值。在实际的工程实践中,面对高度混淆和加固的Native代码(SO库),传统的静态分析往往难以深入。此时,沙盒模拟执行技术提供了一种动态、可控的分析方案。通过搭建一个虚拟的移动应用运行环境,研究人员可以在无需真机、规避反调试机制的情况下,完整地追踪和观察加密算法的执行

weixin_29315091的博客 326

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

摘要: 本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理,通过滑模观测器估算反电动势,结合PLL抑制抖振;2)系统架构,替代编码器信号;3)Simulink建模流程,涵盖Clarke变换、SMO离散化实现、PLL设计等关键步骤;4)参数整定指南和工程实践要点,如启动策略和故障处理。该方法具有成本低、可靠性高的优势,适用于家电、电动车等场景,仿真结果显示角度误差±5°,速度动态跟随良好。文章还提供了调试建议和常见问题解决方案。

MHD0815的博客 136

集合体系结构 Collection遍历方式 迭代器遍历 增强for遍历 增强for细节 Lambda表达式遍历

集合体系结构 Collection遍历方式 迭代器遍历 增强for遍历 增强for细节 Lambda表达式遍历

nie2459010516的博客 205

Qt5.14.2开发Mqtt应用程序

然后,你就做不下去了…很明显,大部分博主写的东西不是缺头就是缺尾,带偏了许多读者。,因此我们需要clone的是这个分支版本,而不是这个默认的。然后将编译产物中include里的所有.h文件复制到。下载完后直接默认安装即可,这一步没什么好说的。看到了没,这个才是正确的操作方式,而主线的。信号来判断,自行实现自己的槽函数。然后选择构建方式,这里我选择的是。信号来判断自行实现自己的槽函数。信号来判断自行实现自己的槽函数。源代码,如下图所示,双击打开。收到下行消息时,可以通过连接。

Bruce.yang的嵌入式之旅 2310

遍历Collection集合的四种方法

第一种:直接使用Java5提供的foreach循环import java.util.ArrayList; import java.util.Collection; public class Demo { public static void main(String[] args) { Collection&lt;String&gt; c = new ArrayList&lt;String...

weixin_40808638的博客 1万+

STM32CubeIDE下载程序报错:Failed to execute MI command: load G:\\Cube_IDE_EXP\\00_FIRST\\Debug\\00...如何解决??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2599

怎么调用onenet平台的API从而读取我们的设备数据和下发命令,做到控制开关

怎么调用onenet平台的API从而读取我们的设备数据和下发命令,做到控制开关 1、首先是怎么读取数据 读取的API是:http://api.heclouds.com/devices/datapoints?devIds=629063002 其中devids这个指的是你的设备ID 然后在我们的headers里面添加一些必要参数,就可以调用了 其中api-key的是你产品里面的master-apikey 把我们的参数写好就可以调用了,选择get方式,点击发送 这个value就是我们需要获取到的参数值了,

zyh960的博客 2万+

Collection集合的遍历方式

for(被遍历集合或者数组中元素的类型 变量名称 : 被遍历集合或者数组){:foreach遍历无法知道遍历到了哪个元素了,因为没有索引。Collection集合的遍历方式是全部集合都可以直接使用的。通过it.hasNext()询问是否有下一个元素,有就通过。:判断是否有下一个元素,有返回true ,反之。:获取集合对应的迭代器,用来遍历集合中的元素的。(2)foreach(增强for循环)。it.next()取出下一个元素。foreach遍历集合实际上是。1.获取当前集合的迭代器。:获取下一个元素值!

qq_45801839的博客 1593

redhawk:Low Power Analysis

1.rush current与switch cell 在standby状态下为了控制leakage power我们选择power gating的设计方式,使用power switch cell关闭block/power domain的电源。 power switch的基本介绍可见: 低功耗设计-Power Switch power switch的table中有四种状态,对应block工作、待机和上电,下电。low power analysis主要分析上电的过程。 上电过程可以看做mos电容

m0_61544122的博客 3206

Collection集合遍历

Collection集合遍历 一、集合(Collection)接口的介绍 1.1数组和集合的区别: 1:长度的区别:数组的长度固定集合的长度可变 2:内容:数组存储的是同一种类型的元素集合可以存储不同类型的元素(但是一般我们不这样干…) 3:元素的数据类型:数组可以存储基本数据类型,也可以存储引用类型集合只能存储引用类型(你存储的是简单的int,它会自动装箱成Integer) 1.2关系图 1.3 Java集合框架的接口: (1)Java集合框架的实现类: (2)应用场景: List基础知识 co

Pluto372的博客 968

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Collection集合遍历以及集合转数组遍历

集合类Collection的概述 Collection集合遍历以及集合转数组遍历 import java.util.ArrayList; import java.util.Collection; public class collectionDemo { public static void main(String[] args) { //创建数组对象 Collection c = new ArrayList(); //添加元素 c.add("hello");//Object oj

记录自己的学习过程 399

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java 集合之Collection接口 方法 集合遍历

java 集合之Collection接口 方法 集合遍历 是Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。 所有通用的 Collection 实现类(通常通过它的一个子接口间接实现 Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection;

SKPrimin的博客 227

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java Collection集合概述、Collection集合的遍历

创建Collection集合的对象 public class CollectionDemo { public static void main(String[] args) { //创建Collection集合的对象 Collection<String> c= new ArrayList<String>(); //添加元素:boolean add(E ...

七七的博客 209

集合、集合的顶层接口Collection、迭代器接口、迭代器遍历集合

集合 集合的特点 集合只能存储对象(引用类型),集合长度可变。集合可以存储不同类型的对象。 java提供了多种集合类。 集合的集成体系 体系老大:Collection 自上至下从抽象到具体,最底层是具体的类。 Collection——集合的顶层接口 Collection的功能...

元气满满晨 2001

Collection集合遍历的三种方法

原因是,当for循环中的索引i在第一个元素时,该元素不包含枸杞,i++,索引遍历至第二个元素,第二个元素包含枸杞,删除,i++,索引遍历至第三个元素,但此时红枸杞元素会因黑枸杞的删除而前移,至第二个元素,所以红枸杞未判断,没有删除。迭代器初始在集合的第一个元素,while循环判断条件为当前元素是否为空,打印时的.next()是将索引遍历到下一个元素。注意:增强for循环/Lambda遍历均不能解决并发修改异常问题,因此增它们只适合做数据的遍历,不适合同时做增删操作,说明:结合lambda遍历集合。

2402_85679719的博客 700

[JAVASE] Collection集合的遍历

Collection集合的遍历

nmbg11的博客 396

Collection集合以及遍历集合

Collection 集合 1.单列集合体系结构 2.Collection集合常用方法 boolean add(E e); 向集合中添加元素 boolean remove(E e); 删除集合中某个元素 void clear(); 清空集合中所有元素 boolean contains(E e); 判断集合中是否包含某个元素 boolean isEmpty(); 判断集合是否为空 int size(); 获取集合长度 Object[] toArray();

weixin_47580395的博客 293

Java集合框架之Collection集合遍历

Java集合框架提供了多种遍历集合的方法,每种方法都有其适用的场景和优缺点。

Java&AI小吕布的博客 950

JAVA学习-Collection集合及遍历

首先,创建一个空的ArrayList集合,然后使用add()方法向集合中添加元素。它提供了一系列的接口和类来实现不同类型的集合,比如List、Set和Queue等。不同的实现类适用于不同的场景,可以根据具体的需求来选择合适的集合类型。根据具体的需求和使用场景,可以选择适合的遍历方式。无论使用哪种方式,都可以方便地遍历和处理集合中的元素。不同的集合类型和方法可以根据具体需求来选择和使用,提高代码的可读性和性能。迭代器提供了一种安全的方式来访问集合中的元素,即使在迭代过程中集合发生变化也不会导致异常。

weixin_69763181的博客 805

collection java 遍历_Collection集合的遍历方式

CollectionDome01packagecom.itheima._01Collection集合的遍历方式;​importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;​/**目标:Collection集合的遍历方式。​什么是遍历? 为什么开发中要遍历?遍历就是一个一个的把容器中的元素访问一遍。开...

weixin_39895684的博客 480

Java中Collection集合的遍历

如果仅仅只是想要遍历集合的话,使用增强for循环和Lambda表达式显然更加简单,但是如果想要在遍历时删除集合的某个元素,那么使用迭代器遍历会更好;

m0_67575174的博客 744

JAVA学习-集合、collection、遍历集合

集合 collection集合概述 是单例集合的顶层接口,它表示一组对象 JDK不提供此类集合的直接使用实现,它提供更具体的子接口(如set和list)实现 创建collection集合的对象 多态的方式,具体实现类Arraylist等 代码实例: Collection<String> co = new ArrayList<String>(); co.add("hello"); co.add("hahah"); c

30+开始学JAVA 123
上一篇: Java集合类都有哪些?
下一篇: 为什么重写 equals 方法就必须重写 hashCode 方法?
Fearless____
博客等级 码龄5年 14粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值