foreach与for
foreach与for
在学习ArrayList时看到了一个不熟悉的方法,乍一看以为是for方法,但与for方法却有所不同,这种方法叫做foreach。接下来我们便深入的了解一下foreach方法。
首先foreach其实就是一种更加简洁的for循环,foreach循环用于遍历数组或者是集合中的元素,语法格式与for方法也有所不同:
for(元素类型变量 : 变量){执行语句
}
与for循环相比,foreach循环不需要获得容器的长度,也不需要++来访问各个元素,但是foreach会自动的遍历容器中的每个元素,例如:
public class Example{public static void main(String[] args){String[] examples = {"我爱","学习","Java"};for (String example : examples){System.out.println(example);}}
}
运行结果为:
我爱
学习
Java
当我在工具中打上foreach时发现foreach这个单词并没有变色,发现foreach并不是Java中的关键字,而只是一种for语句的简化版本,在遍历数组、集合时foreach比for要简单便捷一些。那么问题来了,既然foreach更简便,为什么没有淘汰掉for循环方法呢,这就要说到foreach在使用过程中的局限性了。
在使用foreach遍历集合和数组时,只能访问集合中的元素,却不能对其中的元素进行修改,例如:
public class Example2{public static void main(String[] args){String[] strs = {"我爱","学习","Java"};for(String str : strs){str = "不爱";}System.out.println(str[0]+","+str[1]+","+str[2]);}}
给出的结果会报错,但是用for方法该元素的话却可以成功运行
public class Example2{public static void main(String[] args){String[] strs = {"我爱","学习","Java"};for(int i=0;i<strs.length;i++){strs [i]= "不爱";}System.out.println(strs[0]+","+strs[1]+","+strs[2]);}}
运行结果为:
不爱,不爱,不爱
可见,在用foreach时并不能修改元素的值,因为想修改的元素只是指向了一个新的字符串,可是在普通的for循环中,可以通过索引引用数组中的元素并进行修改。
foreach与for相关推荐
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...
- 2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach
目录 遍历 foreach 使用类型推断简化函数定义 使用下划线来简化函数定义 遍历 foreach 之前,学习过了使用for表达式来遍历集合.我们接下来将学习scala的函数式编程,使用fore ...
- [JS] for-each和map()的区别
先说下for-each与for-of还有for-in的区别. for-of和for-in都是对对象操作的,而for-each和map()是对数组进行操作的. for-in的使用:对于一个数组里的每一个 ...
- java 增强for循环(foreach)
学而时习之,温故而知新. java的增强fou循环(foreach) 是java5的新特征之一 foreach的循环对象一般是一个集合,List.ArrayList.LinkedList.Vector ...
- Scala中的foreach方法和map方法
两个方法的共同点在于(foreach和map):都是用于遍历集合对象,并对每一项执行指定的方法. 而两者的差异在于:foreach无返回值(准确说返回void),map返回集合对象. 结论就是:for ...
- Java数组传参sql_Java中如何传一个数组作为筛选条件操作数据库(sql中foreach的使用)...
实现步骤: 1. 把前端获取到的要删除的数据的nId,以逗号作为分隔符,组成一个da(其中checkStatus.data.length和checkStatus.data[i].nId是layui里面 ...
- java foreach delete_Java CopyOnWriteArrayList forEach()用法及代码示例
CopyOnWriteArrayList的forEach()方法为Iterable的每个元素执行给定的操作,直到已处理完所有元素或该操作引发异常. 用法: public void forEach (C ...
- java foreach order_Java 8流中的forEach vs forEachOrdered
我知道这些方法的执行顺序不同,但在所有测试中,我都无法实现不同的执行顺序. 例子: System.out.println("forEach Demo"); Stream.of(&q ...
- ecshop模板smarty foreach详解 [ECshop]
{foreach},{foreachelse} {foreach} 用于像循环访问一个数字索引数组一样循环访问一个关联数组,与仅能访问数字索引数组的{section}不同,{foreach}的语法比 ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
最新文章
- create 执行存储过程报错出现符号_年薪百万之路--第四十天 存储引擎
- 卡巴斯基文件服务器,卡巴斯基更新服务器的解决方案
- 深入理解 ajax_xhr 对象
- 程序员职场:拥有一个学位将会在你的职业生涯中更加顺利!
- 在虚拟机上运行vxWorks
- 微信公共开发人员文档 阅读笔记
- 【Java】Java8新特性Lambda表达式和Stream API
- LeetCode 235. 二叉搜索树的最近公共祖先(递归)
- 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)
- excel2010服务器打开闪退
- [论文阅读][CVPR2021]EventZoom: Learning to Denoise and Super Resolve Neuromorphic Events
- 常见python基础面试题_常:汉字常的意思/解释/字义/来源 - 新华字典
- 题目0073-双十一
- 项目管理sod_Microsoft Visual SourceSafe(项目文件管理) V6.0 最新中文版(图文)
- rpm安装包安装方式
- python数据分析入门【二】 --- 数据处理
- Request和response的用法总结
- 【编译原理】 实验三 LL(1)分析法(LL1分析表的自动生成)
- 19个GIS相关地理信息数据
- 利用抖音Cookie充值接口提取支付链接,调起原生微信h5支付宝h5支付
热门文章
- 炮炮兵可爱桌面壁纸 高清
- 西电2014计算机研究生,西电2014年计算机研究生833考试大纲
- OpenCV进阶(6)基于OpenCV的深度学习人体姿态估计之多人篇
- 出租房管理(1) - 开发背景 - 软件开发环境 - 采用技术
- 【HomeKit】从HomeKit架构层细化到HomeKit ADK集成
- html 苹果xr媒体查询,iPhoneX 媒体查询适配的方法教程
- Uipath如何获取outlook邮件附件/特定类型附件
- N-Case 律师事务所管理系统功能介绍
- luma.led_matrix库在树莓派上的安装
- MySql修改表名的两种方法