Java中foreach用法及常用集合操作

CST周期边界仿真:揭秘频率选择表面(FSS)单元设计全流程 本文详细解析了CST周期边界仿真在频率选择表面(FSS)单元设计中的应用全流程。从理论基础到工程实践,涵盖了求解器选择、几何建模、边界设置、端口优化等关键步骤,并提供了常见问题排查指南。通过CST仿真技术,工程师能够高效预测FSS的电磁特性,为实际应用提供可靠的设计依据。 阅读详情

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。 foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){     引用了x的java语句;} 下面通过几个例子简单例子看看foreach是如何简化编程的。

1.首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,

但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。
3.而对于LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用增强for循环,也就是iterator。

我这里用的是Junit的进行的测试。


package com.test;

import java.util.ArrayList;

/**
 * 增强for循环
 * 
 */
public class EnhanceDemo {
	/**
	 * 操作数组
	 */
	@Test
	public void testEnhance1() {
		int[] i = { 1, 2, 3, 4 };
		for (int num : i) {
			System.out.println("testEnhance1--> num: " + num);
		}
	}

	/**
	 * 操作List集合
	 */
	@Test
	public void testEnhance2() {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		for (int n : list) {
			int num = n;
			System.out.println("testEnhance2--> num: " + num);

		}
	}

	/**
	 * 传统方式
	 */
	@Test
	public void testMap() {
		Map<String,String> map = new HashMap<String,String>();
		// Map map = new LinkedHashMap(); // LinkedMap是有序的
		map.put("1", "aaaa");
		map.put("2", "bbbb");
		map.put("3", "cccc");
		map.put("4", "dddd");
		// 拿到keySet,保存所有的key,通过key获取到value
		Set<String> set = map.keySet();
		Iterator<String> iterator = set.iterator();
		while (iterator.hasNext()) {
			String key = (String) iterator.next();
			String value = (String) map.get(key);
			System.out.println(key + " = " + value);
		}

		// foreach
		/*for (Object key : set) {
			String value = map.get(key);
			System.out.println(key + " === " + value);
		}*/

	}

	/**
	 * 传统方式2
	 */
	@Test
	public void testMap2() {
		Map<String,String> map = new HashMap<String,String>();
		// Map map = new LinkedHashMap(); // LinkedMap是有序的
		map.put("1", "aaaa");
		map.put("2", "bbbb");
		map.put("3", "cccc");
		map.put("4", "dddd");
		// 拿到entrySet它单个的键值对存放
		Set<Entry<String, String>> set = map.entrySet();
		Iterator<Entry<String, String>> iterator = set.iterator();
		while (iterator.hasNext()) {
			Entry<String, String> entry = iterator.next();
			System.out.println(entry.getKey() + " == " + entry.getValue());
		}
		// foreach
		/*for (Entry<String, String> obj : set) {
			Entry<String, String> entry = obj;
			entry.getKey();
			System.out.println(entry.getKey() + "=== === " + entry.getValue());
		}*/
		 
	}

	/**
	 * 增强for循环需要注意的几个地方: 
	 *  1,它值适合迭代数据(取数据),而不适合修改数据,并不会修改集合的内容(大小etc)
	 *  2,需要修改集合的内容,则需要用传统的方式。
	 */
	@Test
	public void foreachTest() {
		int[] i = { 1, 2, 3, 4 };
		for (int j : i) {
			j = 10;
			System.out.println("foreach方式:" + i[1]);
		}

		for (int j = 0; j < i.length; j++) {
			System.out.print(i[j]);
			i[j] = 10;
			System.out.println(" ,传统方式修改:" + i[j]);
		}

		List<String> list = new ArrayList<String>();
		list.add("1");
		for (Object object : list) {
			object = "100";
			System.out.println(list.get(0));
		}
	}
}

上面遍历Map通过了两种方法:keySet()和entrySet()。

总结

1,foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(如:数组下标越界问题)。

2,相对老的for语句来说是个很好的补充。提倡能用foreach的地方就不要再用for了,提高了编程便捷性。

3,在用到对集合或者数组索引的情况下,foreach显得力不从心,这个时候是用传统的for语句的搞定。

4,foreach一般结合泛型使用。



基于YOLOv11的手术器械计数系统:从数据集构建到Web应用部署 m2cai16-tool数据集:包含15种腹腔镜手术器械的标注图像Cholec80数据集:包含80个胆囊切除手术视频,标注了7种器械SurgicalTools数据集:包含超过10,000张手术器械图像,涵盖21类常见器械手术剪(Scissors)止血钳(Hemostat)持针器(Needle Holder)手术刀(Scalpel)镊子(Forceps)拉钩(Retractor)吸引器(Suction) 阅读详情

相关推荐

工程伦理-知识点汇总

工程伦理-知识点汇总

m0_46091747的博客 1万+

详解Java中foreach、for循环语句以及实例测试

详解Java中foreach、for循环语句以及实例测试

m0_54158068的博客 5086

ESP32-BLE学习1-建立简单的server

start 学习之前,我想尝试使用ESP32的demo建立一个简单的server与手机接进行最基本的数据通信。 这里有BLE的简单讲解BLE资料 因为BLE的连接是具有主从机特性的,就像SPI,USB一些请求只能由主机端发起,连接也需要主机端发起。所以手机要想连上ESP32,就得将ESP32设置为从机模式。 从资料上可以看到,从机端通过Notify通知主机,所以从机就是GATT Server。 在进行ESP32 的demo学习之前,得大体看下ESP32的蓝牙组成,ESP32支持经典蓝牙和低功耗蓝牙4.2,

Spark的博客 1842

Java foreach语句的用法

Java foreach语句用法使用如何使用Java1.5出现的foreach语句foreach语句for循环foreach语句的使用注意事项 如何使用Java1.5出现的foreach语句 foreach在遍历数组、集合方面,foreach 为开发者提供了极大的方便。foreach 循环语句是 for 语句的特殊简化版本,主要用于执行遍历功能的循环。 foreach语句 foreach 循环语句的语法格式如下: for(数据类型 变量名:数组) { 需要执行的语句块; } 举一个简单的例子:

m0_56642224的博客 1万+

【VS Code+Verilog+Vivado使用】(1)常用插件

VS Code + Verilog + Vivado联合使用说明

XDUryan的博客 5636

Star CCM+ 实战:旋风分离器网格加密策略与湍流模拟优化

本文针对Star CCM+中旋风分离器模拟精度不足的常见问题,深入剖析了网格质量的关键影响。文章重点介绍了通过局部网格加密策略,精准优化旋流核心区与入口区域的网格密度,从而在保证计算效率的前提下,显著提升湍流模拟的准确性与流场细节的捕捉能力,为工程实践提供了一套有效的优化方案。

water的专栏 535

java中foreach的用法

java中foreach,可以认为是增强版的for语句循环,它可以减少代码量,但是不是所有的foreach都可以代替for循环。 foreach的语句格式:for(元素类型type 元素变量value :遍历对象obj){ 引用x的java语句 } 用法1:输出一维数组 用法2:输出二维数组 foreach的局限性 foreach是for循环的增强版本,简化了编程,提高了代码的可读性和安全...

qq_44840148的博客 10万+

【雕爷学编程】MicroPython手册之 Teensy 4.1 实时时钟 (RTC)

在类的初始化函数中,定义了用于控制I2C总线的i2c对象和RTC模块的I2C地址。接着,使用该引脚初始化了一个Pin对象。它还提供了8个串口,3个SPI端口,3个I2C端口,2个I2S/TDM数字音频端口,3个CAN总线(其中一个支持CAN FD),以及一个SDIO(4位数据)原生SD卡端口12。2、内存:Teensy 4.1配备了1024 KB的RAM(其中512 KB是紧密耦合的),8 MB的Flash(其中64 KB用于恢复和EEPROM模拟),以及两个位置可以选择添加更多的QSPI内存芯片。

雕爷学编程 575

40个Java集合面试问题和答案

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安

小地盘的诺克萨斯 5732

【知识分享】CAN总线中终端网络的重要性

P沟道和N沟道晶体管的漏源通态电阻匹配良好时,形成的CANH和CANL信号匹配良好;如果驱动器的一半具有比另一半低得多的导通状态电阻,那么总线共模电压将从VCC/2的显性状态偏离,并回到VCC/2的隐性状态,这将导致每一次状态转换都会伴随着共模电压噪声,从而导致更高水平的传导和辐射能量发射。

一只豌豆象的博客 1543

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 930

Java中的for each循环

增强型for循环简化了遍历操作,提高了代码的可读性和编写效率,尤其是在不关心索引或不需要修改元素的情况下非常有效。增强型for循环,通常被称为“for-each”循环,在Java和其他支持该特性的编程语言中,提供了一种更简洁的方式来遍历数组或可迭代对象。如果需要获取集合或数组中的元素位置(索引),for-each循环无法直接提供,需使用传统for循环或结合List的indexOf()方法。for-each循环只能用于读取数据,如果需要修改集合或数组的内容,应使用传统的for循环。

全局可见 1344

58子站安居,经纪人营销管理平台登录接口加密逆向

实战场景password 实战分析 本次要解决的站点依旧来源自78技术人社群,有朋友希望再次说明一下其登录模块的加密参数寻找与逆向逻辑,本文我们就一起分析一下。 站点地址为:vip.anjuke.com/portal/login 通过开发者工具,可以简简单单的寻找到相应的数据。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

Java中List集合Stream流详解

java

wh柒八九的博客 2426

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

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

集合框架(1)Collection接口与Iterator迭代器

11> boolean retainAll(Collection coll):从当前集合中删除两个集合中不同的元素,使得当前集合仅保留与coll集合中的元素相同的元素,即当前集合中仅保留两个集合的交集,即this = this ∩ coll; boolean removeAll(Collection coll):从当前集合中删除所有与coll集合中相同的元素。boolean containsAll(Collection coll):判断coll集合中的元素是否在当前集合中都存在。

2401_88237139的博客 769

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

第七章:集合(作业)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2501_93330982的博客 268

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java集合---02--Collection常用方法

Collection- 单列集合 Collection接口中的15个方法的使用 常用方法 add(Object e):将元素e添加到集合coll中 size():获取添加的元素的个数 addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中 clear():清空集合元素 isEmpty():判断当前集合是否为空 public class CollectionTest { @Test public void test1(){

时光里的博客 302

吃透JAVA的Stream流操作,多年实践总结

好啦,关于JAVA Stream的理解要点与使用技能的阐述就先到这里啦。那通过上面的介绍,各位小伙伴们是否已经跃跃欲试了呢?快去项目中使用体验下吧!当然啦,如果有疑问,也欢迎找我一起探讨探讨咯。

Jernnifer_mao的博客 351

java中集合类forEach的用法

1、forEach介绍 先来一波源码,可以看出中国是在jdk8后出现的方法,用于做元素的for循环。 这个方法是 java.lang包下的 interface Iterable<T>的,代码如下 /** * Performs the given action for each element of the {@code Iterable} ...

qq6412110的博客 2064

java8 新特性 List,Map集合的foreach使用方法

java8 新特性list集合的foreach用法java8 foreach常用版foreachMap集合的foreach用法demo list集合的foreach用法 List<String> array= new Array<String>(); java8 foreach java8写法还是有些局限性的,循环中不能用运算符 array.forEach(list -> { System.out.println(list); }); 常用版foreach for

qq_42967728的博客 3031

MyBatis foreach 标签常用方法总结

  在 MyBatis 中,常常会遇到集合类型的参数,虽然我们可以通过 OGNL 表达式来访问集合的某一个元素,但是 OGNL 表达式无法遍历集合。foreach 标签就是专门用来解决这类问题的,foreach 标签可以用来遍历数组、列表和 Map 等集合参数,实现批量操作或一些简单 SQL 操作。  foreach 元素的属性主要有 item,index,open,separator,close,collection。各属性含义如下所示。  集合中元素迭代时的别名,该参数为必选。  在 list 和数组中

长安明月的博客 1万+

foreach的用法

foreach遍历数组和集合 格式: for(元素类型 元素变量x:遍历对象(数组或集合)){ 引用元素变量x的语句; } 例: int[] array = new int[5]; for(int x : array){ System.out.println(x); } 遍历MAP集合格式如下: for (Map.Entry<K, V> entry : map.entrySet()) action.accept(entry.getKey(), entry.getValue());

weixin_43151557的博客 4万+

foreach用法

总之,foreach 是一种非常实用的语法糖,可以使代码更简洁、更易读,提高代码的可维护性和可读性。要注意,在迭代过程中,由于 foreach 遍历的是集合对象的副本,而非原始集合对象,因此如果在循环内部修改集合元素,则不会影响原始集合。如果需要修改集合元素,可以考虑使用迭代器 Iterator 进行操作。其中 element 表示集合中的元素,collection 表示要遍历的集合,循环体中的代码会执行若干次,每次都会取出 collection 中的一个元素,赋值给 element,然后运行循环体。

weixin_51378457的博客 1万+

为什么不能在foreach循环中修改集合?

阿里巴巴JAVA开发手册》中有这样一条:不要在 foreach 循环里进行元素的 add / remove 操作,remove 元素使用 Iterator 方式。经测试,当在 foreach 循环中 add / remove 集合元素,可能会抛出 ConcurrentModificationException 异常,下面介绍进行详细说明。

zhhui1123的博客 2217

Java中List的forEach用法详解

java复制下载// 对每个元素进行平方操作// 输出:1 4 9 16 25});

BillKu的博客 2189

JAVA之forEach遍历集合

JAVA之forEach遍历集合 在JDK 8中,根据Lambda表达式的特性还增加了一个forEach(Consumer action)方法来遍历集合,该方法所需要的参数是一个函数式接口 import java.util.ArrayList; import java.util.List; public class forEachTest01 { public static void main(String[] args) { //创建ArrayList集合 L

HR的博客 4493
上一篇: Eclipse快捷键与使用技巧总结
下一篇: 总结过去10年的程序员生涯
池哥搬砖
博客等级 码龄17年 255粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值