疯狂Java系列之集合和iterator接口

DeepCAD: 使用深度自监督学习技术在Python中进行钙成像去噪的全面指南 钙成像是一种用于观察神经活动的技术,通过检测细胞内钙离子的变化来推断神经元的活动。由于其高时空分辨率和对活体组织的适应性,钙成像已经成为神经科学研究中的重要工具。然而,钙成像数据往往伴随着各种噪声,这些噪声可能来自于设备、生物样本或环境。为了获得准确的神经活动信息,去噪是非常关键的。深度自监督学习是一种使用未标记数据进行训练的机器学习方法。与传统的监督学习不同,它不需要大量的标记数据,而是通过学习数据的内部结构和模式来提取有用的特征。DeepCAD是一个基于深度自监督学习的钙成像去噪工具。 阅读详情

     使用集合就不可避免的会对集合中的元素进行遍历,

1、使用Lambda表达式遍历集合



Java8新增了一个forEach(Consumer action)方法给迭代接口,该方法所需参数的类型是一个函数式接口,而Iterator接口是Collection接口的父接口,则Collection集合也能够调用这个方法。

代码:

package javaCollection;

import java.util.Collection;
import java.util.HashSet;
/**
 * 使用Lambd表达式遍历集合
 * @author bobo
 *
 */
public class CollectionEach {

	public static void main(String[] args) {
		Collection person = new HashSet();
		person.add("唐三藏");
		person.add("孙悟空");
		person.add("猪八戒");
		person.add("沙悟净");
		person.add("白龙马");
		
		person.forEach(obj->System.out.println("迭代集合元素"+obj));
	}
}

结果:


    总结:Lambda表达式的目标类型是Comsumer,forEach()方法会自动将集合元素逐个传给Lambda表达式的形参,这样Lambda表达式的代码体即可遍历到集合元素了。



2、Iterator遍历集合元素

Iterator主要用于遍历Collection集合元素(迭代访问),Iterator也被称为迭代器。

代码:

package javaCollection;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

public class Iteratortest {

	public static void main(String[] args){
		//创建添加元素
		Collection person = new HashSet();
		person.add("唐三藏");
		person.add("孙悟空");
		person.add("猪八戒");
		person.add("沙悟净");
		person.add("白龙马");
		
		//获取person集合对应的迭代器
		Iterator it=person.iterator();
		while(it.hasNext())//如果集合元素没有被遍历完,则返回true继续遍历
		{
			//it.next()方法返回类型为Object,因此要强转
			String ps=(String)it.next();
			System.out.println(ps);
			if(ps.equals("白龙马"))
			{
				//从集合中删除上一次next()方法返回的元素
				it.remove();
			}
			//对ps变量赋值,不会改变集合元素本身
			ps="测试字符串";
		}
		System.out.println(person);
		
	}
}


结果:


总结:Iterator仅用于遍历集合,不能用来装对象,这里创建Iterator对象,则必须有一个被迭代的集合。

赋给ps的“测试”数据,并没有被输出,则说明当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量并不会对集合产生影响。




3、使用Lambda表达式遍历Iterator

迭代器接口共定义了四个方法:hashNext()、next()、remove()、forEachRemaining(action)。

forEachRemaining(Consumer action)方法是Java8新增的Iterator方法,该方法所需的Consumer参数也是函数式接口。当程序调用Iterator的FER()方法遍历集合元素时,程序依次将元素传给Consumer的accept(T t)方法。

代码:

package javaCollection;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
/**
 * 使用Lambda表达式遍历Iterator
 * @author bobo
 *
 */
public class IteratorEach {

	public static void main(String[] args) {
		//创建添加元素
		Collection person = new HashSet();
		person.add("唐三藏");
		person.add("孙悟空");
		person.add("猪八戒");
		person.add("沙悟净");
		person.add("白龙马");
		
		//获取person集合对应的迭代器
		Iterator it=person.iterator();
		
		//使用lambda表达式来遍历集合元素,(目标类型Comsumer obj)
		it.forEachRemaining(obj->System.out.println("迭代集合元素:"+obj));
	}

}


结果:


总结:将类型为Comsumer的传给forEachRemaining为参数,进行遍历和使用hashNext()Next方法一样,都可以进行集合元素遍历。


4、使用Foreach循环遍历集合元素

除以上遍历方法,java也提供了原生的遍历手段,使用foreach循环迭代访问集合元素。

与iterator接口迭代访问集合元素类似的是,foreach循环也不是传的集合元素本身,而是元素的值,所以在foreach循环中修改迭代变量也是无意义的。

代码:

package javaCollection;

import java.util.Collection;
import java.util.HashSet;

/**
 * 使用Foreach循环遍历集合元素
 * @author bobo
 *
 */
public class forEachTest {

	public static void main(String[] args) {
		//创建添加元素
		Collection person = new HashSet();
		person.add("唐三藏");
		person.add("白龙马");
		person.add("沙悟净");
		
		
		person.add("孙悟空");
		person.add("猪八戒");
		
		
		for(Object obj:person)
		{
			//此处的ps变量不是集合元素本身,Object类型元素需要强转
			String ps=(String)obj;
			System.out.println(ps);
//			if(ps.equals("白龙马"))
//			{				
//				//会引发concurrentModificationException异常
//				person.remove(ps);				
//			}
		}
		System.out.println(person);
	}

}


结果:


foreach循环迭代访问集合元素时,不能改变集合元素的值,否则引发异常。





以上介绍几种一次访问集合每一个元素的方法。希望对于迭代和集合有更深入的研究。


Java8新增了一个forEach(Consumer action)方法给迭代接口,该方法所需参数的类型是一个函数式接口,而Iterator接口是Collection接口的父接口,则Collection集合也能够调用这个方法。

代码:

package javaCollection;

import java.util.Collection;
import java.util.HashSet;
/**
 * 使用Lambd表达式遍历集合
 * @author bobo
 *
 */
public class CollectionEach {

	public static void main(String[] args) {
		Collection person = new HashSet();
		person.add("唐三藏");
		person.add("孙悟空");
		person.add("猪八戒");
		person.add("沙悟净");
		person.add("白龙马");
		
		person.forEach(obj->System.out.println("迭代集合元素"+obj));
	}
}

结果:


    总结:Lambda表达式的目标类型是Comsumer,forEach()方法会自动将集合元素逐个传给Lambda表达式的形参,这样Lambda表达式的代码体即可遍历到集合元素了。


SAP Group Reporting入门指南(3)--公司间匹配对账ICMR及合并版本等主数据 S/4HANA CLOUD公司间匹配和对账 阅读详情

相关推荐

光耦继电器电路分析

光耦电路的分析笔记

MingYue_SSS的博客 6882

java之Collection

主要内容 Collection集合 迭代器 增强for List集合 Set集合 学习目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合进行取元素 能够说出集合的使用细节 能够使用集合存储自定义类型 能够使用foreach循环遍历集合 能够说出List集合和Set集合的区别 能够说出List集合各种实现类的区别 能够说出Set集合各种实现类的区别 能够说出Collection和Map集合的区别 说出Map集合的常用功能 能够遍历Map集

m0_46191714的博客 2万+

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1195

Iterator接口

Iterator接口 Iterator接口也是集合中的一员,但它与Collection ,Map接口有所不同。Collection接口与Map接口主要用于储存元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也称为迭代器。 package Zhuo; import java.util.ArrayList; /** * 功能: * 作者:阿打莫拉作 * 日期:2022年05月11日 */ public class Iterator {

m0_67309570的博客 1496

多模型对抗性审查:用AI辩论提升技术文档质量

在软件工程领域,技术文档是团队协作和项目成功的关键基础。传统的文档评审依赖人工经验,存在盲区和效率瓶颈。通过引入多模型对抗性审查机制,不同大语言模型从各自视角对文档进行批判性分析,模拟现实中的专家评审过程。这种技术方法的核心价值在于利用模型间的思维差异,自动发现单个视角容易忽略的边界情况、逻辑漏洞和隐含假设。在应用场景上,特别适合产品需求文档和技术规格书这类需要多角度审视的复杂文档。adversarial-spec工具通过Claude协调多模型辩论,实现从概念到实现的完整文档质量保障,显著提升文档的完整性和

weixin_42531579的博客 379

YOLOv8 TensorRT C++部署实战详解:从XMake构建到推理流水线

本项目实现了一个基于YOLOv8和TensorRT的高性能火灾烟雾检测系统,具有以下核心特点: 技术架构:采用TensorRT 8.6+进行GPU加速推理,结合CUDA 12.1和OpenCV 4.8+,实现高效计算机视觉处理。系统使用XMake替代CMake构建,配置更简洁高效。

hscing的博客 1065

【Java 基础篇】Java Collection详解

Collection是Java集合框架的根接口,它定义了一些基本的操作和行为,如添加、删除、遍历等。List和Set。List是一个有序的集合,可以包含重复元素。它提供了按索引访问、插入、删除等操作。常见的实现类有ArrayListLinkedList和Vector。Set是一个不允许包含重复元素的集合。它提供了高效的元素查找和去重。常见的实现类有HashSetTreeSet和。此外,Map接口也是Collection框架的一部分,它提供了键值对的存储和操作。Map中的键是唯一的,值可以重复。

繁依Fanyi的博客 7279

mysql 计算不同胜率的活跃玩家的次日,3日,7日留存率

它根据每天的日期(logymd)和最高段位(max_rank)、胜率段落(win_rate_segment)进行分组,并计算总玩家人数(total_players)、第二天的留存人数(next_day_players)、第三天的留存人数(day3_players)和第七天的留存人数(day7_players)。注意:不是新手留存,是段位活跃玩家留存;最终的结果则是将留存数据进行展示,按照日期(date)、最高段位(rank_level)、胜率段落(win_rate_segment)进行排序。

weixin_42698221的博客 1836

Java——Collection集合

java中Collection集合详解

程序员阿龙的博客 7282

【系统架构设计师】预测试卷四:综合知识(75道选择题)

本文整理系统架构设计师考试高频考点,涵盖计算机系统基础、计算机网络、数据库、软件工程与UML四大模块,共28道典型题目。重点解析Cache局部性原理、RISC/CISC区别、TCP三次握手、B+树索引优势、CAP定理、螺旋模型特点等核心概念,并标注易错选项,帮助考生快速掌握解题思路。 关键词:系统架构、Cache、RISC、TCP、B+树、CAP定理、螺旋模型

数据知道的博客 546

uniapp - H5网页打包运行报错Failed to load resource: net::ERR_FILE_NOT_FOUND(uniApp打包成H5部署到服务器,打包h5白屏并报错页面空白)

Failed to load resource: net::ERR_FILE_NOT_FOUND,uniapp 坑之打包之后白屏,uniapp打包h5,HBuilderX 打包H5后空白报错 Failed to load resource: net::ERR FILE NOT_FOUND,UNI-APP H5应用白屏(空白页)解决方案,白屏并报错Failed to load resource: net::ERR_FILE_NOT_FOUND,uniapp开发,打包成H5部署到服务器,uniapp打包之后首页

🏆 前端领域优质创作者 3579

Java集合大总结——Iterator(迭代器)接口

Java集合大总结——Iterator(迭代器)接口

Elon15的博客 1558

2023全国职业技能大赛 网络系统管理 服务部署 Linux部分--基础配置

服务器和客户端基本配置如下表,各虚拟机已预装系统。一、关闭防火墙和Selinux。七、需要使用到的命令详解。三、修改root密码。

weixin_62926639的博客 1001

Java集合概述集Collection 和 Iterator 接口用法详解

以下内容部分来自 疯狂Java讲义/李刚 ,博客仅用于个人笔记及帮助他人用途,无任何商业目的,如有侵权,请联系作者删除。 Java集合概述为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java 提供了集合类,集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有的集合类都位于 java.util 包下,后来为了处理多线程环境下的并发安全问题,Java5 还在 j

张可的博客 905

蓝牙模块HM-10手册

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

《疯狂java讲义》学习(27):Collection和Iterator接口

Java集合概述 在编程时,常常需要集中存放多个数据。我们可以使用数组来保存多个对象,但数组长度不可变化,如果需要保存数量变化的数据,数组就有点无能为力了;而且数组无法保存具有映射关系的数据,如成绩表:语文—79,数学—80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。 为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类。集合类主要...

泛泛之素 857

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java Review (二十五、集合----- Iterator接口)

Iterator接口 也是 Java 集合框架的成员 , 但它与 Collection 系列 、 Map 系列 的集合不 一样 : Collection系列集合、 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要用于遍历(即迭代访问) Collection集合中的元素, Iterator 对象也被称为迭代器 。 Iterator 接口隐藏了各种 Collection实现类的底层...

三分恶的博客 999

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java 学习之路 之 Collection和Iterator接口(三十三)

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既ke

1029

Iterator(迭代器)接口

Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。如果还未调用next()或在上一次调用 next() 方法之后已经调用了 remove() 方法,再调用remove()都会报IllegalStateException。集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。

m0_59281987的博客 1265

Java Iterator接口

上图中,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next()方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next()方法时,迭代器的索引会指向第二个元素并将该元素返回,以此类推,直到hasNext()方法返回false,表示到达了集合的末尾,终止对元素的遍历。

weixin_63215361的博客 409

集合学习之Iterator接口

Iterator接口遍历学习

weixin_53898747的博客 805

Java基础之Collection

Java基础之Collection

qq_45344586的博客 4772

Iterator接口(顶层接口)

每一个集合都有自己的数据结构(就是容器中存储数据的方式),都有特定的取出自己内部元素的方式。将容器内部的取出方式按照一个统一的规则向外提供,这个规则就是Iterator接口,使得对容器的遍历操作与其具体的底层实现相隔离,达到解耦的效果。也就说,只要通过该接口就可以取出Collection集合中的元素,至于每一个具体的容器依据自己的数据结构,如何实现的具体取出细节,这个不用关心,这样就降低了取出元素和具体集合的耦合性。Iterator接口,这是一个用于遍历集合中元素的接口,主要包含。使用迭代器遍历集合元素。

qq_45905724的博客 137

Java集合之Iterator迭代器接口(三)

Iterator迭代器接口

m0_49124752的博客 242

Java中的Collection

概念Collection 是单列集合,即每个元素只包含一个值。Collection 是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。Collection 集合特点集合特点ArrayList有序、可重复、有索引LinekdList有序、可重复、有索引HashSet无序、不重复、无索引有序、不重复、无索引TreeSet按照大小默认升序排序、不重复、无索引Collection 集合使用场景如果希望元素可以重复,又有索引,索引查询要快,用基于数组的ArrayList集合。

weixin_72525373的博客 2194

Java集合遍历-Iterator接口

迭代器的执行原理是创建一个指针对象,指向当前数据结构的起始位置,然后调用next方法,指针自动指向数据结构的第一个成员,接下来不断调用next方法,指针一直往后移动,直到指向最后一个成员,每次调用next方法都会返回一个包含value和done属性的对象。在Java开发过程中我们进场需要去遍历某个集合,然而有的集合有索引,有的集合没有索引,对于没有索引的集合我们就无法通过索引来遍历集合中的元素,这时Java就为我们提供了一个接口,Iterator接口,它的主要作用就是用来迭代访问集合中的元素。

weixin_62312011的博客 291

Java学习之集合 - Collection

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。

2302_80745052的博客 1117
上一篇: 疯狂Java系列之j集合类
下一篇: 疯狂Java系列之Set集合
mayfla
博客等级 码龄14年 312粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值