Java foreach相关原理及用法解析
foreach其实就是for的加强版,其语法如下:
for(元素类型type 元素变量value : 遍历对象obj) { 引用x的java语句; }
举个例子,比如定义一个数组,使用foreach以此输出元素,其中for内部的int a :ar,就是讲数组ar每次循环取出一个数赋给变量a,然后循环打印变量a的值。
int[] ar = new int[]{1, 2, 3, 4, 5}; for (int a : ar) { System.out.print(a + " "); } System.out.println();
上面是一个一维数组,下面拿一个二维数组为例。首先二维数组可以看做是多个一维数组组成,既然是多个一维数组就可以按照上面的语法,将二维数组的每一维数组使用 int a[] :arr遍历出来,然后在使用一个foreach遍历每一个一维数组即可。
int[][] arr = new int[][]{{1, 2, 3, 4, 5}, {1, 1, 2}, {2, 3, 4, 5, 6, 7}}; for (int a[] : arr) { for (int i : a) { System.out.print(i + " "); } System.out.println(); }
运行结果:结果如图所示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
深入了解java8的foreach循环
虽然java8出来很久了,但是之前用的一直也不多,最近正好学习了java8,推荐一本书还是不错的<写给大忙人看的javase8>.因为学习了Java8,所以只要能用到的地方都会去用,尤其是Java8的Stream,感觉用起来觉得很方便,因为点点点就出来了,而且代码那么简洁.现在开始慢慢深入了解java8,发现很多东西不能看表面. 比如常规遍历一个集合,下面给出例子: 1.首先遍历一个List 方式1.一开始是这样的: public static void test1(List<Strin
-
深入理解java中for和foreach循环
•for循环中的循环条件中的变量只求一次值!具体看最后的图片 •foreach语句是java5新增,在遍历数组.集合的时候,foreach拥有不错的性能. •foreach是for语句的简化,但是foreach并不能替代for循环.可以这么说,任何foreach都能改写为for循环,但是反之则行不通. •foreach不是java中的关键字.foreach的循环对象一般是一个集合,List.ArrayList.LinkedList.Vector.数组等. •foreach的格式: for(元素类
-
java 使用foreach遍历集合元素的实例
java 使用foreach遍历集合元素的实例 1 代码示例 import java.util.*; public class ForeachTest { public static void main(String[] args) { // 创建集合.添加元素的代码与前一个程序相同 Collection books = new HashSet(); books.add(new String("book1")); books.add(new String("book2&quo
-
浅析java的foreach循环
使用foreach循环遍历数组和集合时,无需获得数组和集合的长度,无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每一个元素. 复制代码 代码如下: foreach的语句格式: for(type variableName : array|connection){ //variable自动迭代访问每一个元素} 例子: 复制代码 代码如下: public class ForEachTest{public static void main(String[] arg
-
Java中遍历数组使用foreach循环还是for循环?
从JDK1.5起,增加了新功能Foreach,它是for循环遍历数据的一种简写形式,使用的关键字依然是for,但参数格式不同.其详细用法为: for(Type e:collection){ //对变量e的使用} 参数说明: e:其类型Type是集合或数组中元素值的类型,该参数是集合或数组collection中的一个元素. collections: 要遍历的集合或数组,也可以是迭代器. 在循环体中使用参数e,该参数是foreach从集合或数组以及迭代器中取得的元素值,元素值是从头到尾进行遍历的.
-
java程序中foreach用法示例
语法 复制代码 代码如下: for (Object objectname : preArrayList(一个Object对象的列表)) {} 示例 复制代码 代码如下: package com.kuaff.jdk5;import java.util.*; import java.util.Collection; public class Foreach{private Collection c = null; private String[] belle = new String[4]; pub
-
详解Java中的增强 for 循环 foreach
foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理.能够提高性能,并减少代码出错的几率.在 Java 中还有比如 泛型.自动拆箱.自动装箱.内部类.枚举等等. foreach 是用来对数组或者集合进行遍历的语法.具体语法如下: for(元素类型 ele : 数组名/Iterable 实例){ } 下面我们用 foreach 来对数组和一个集合进行遍历: int [] array = {1,2
-
js的for in循环和java里foreach循环的区别分析
本文实例分析了js的for in循环和java里foreach循环的区别.分享给大家供大家参考.具体分析如下: js里的for in循环定义如下: 复制代码 代码如下: for(var variable in obj) { ... } obj可以是一个普通的js对象或者一个数组.如果obj是js对象,那么variable在遍历中得到的是对象的属性的名字,而不是属性对应的值.如果obj是数组,那么variable在遍历中得到的是数组的下标. 遍历对象实验: 复制代码 代码如下: var v = {
-
Java foreach相关原理及用法解析
foreach其实就是for的加强版,其语法如下: for(元素类型type 元素变量value : 遍历对象obj) { 引用x的java语句; } 举个例子,比如定义一个数组,使用foreach以此输出元素,其中for内部的int a :ar,就是讲数组ar每次循环取出一个数赋给变量a,然后循环打印变量a的值. int[] ar = new int[]{1, 2, 3, 4, 5}; for (int a : ar) { System.out.print(a + " "); } S
-
Java多线程volatile原理及用法解析
首先volatile有两大功能: 保证线程可见性 禁止指令重排序 1.保证线程可见性 首先我们来看这样一个程序,其中不加volatile关键字运行的结果截然不同,加上volatile程序能够正常结束,不加则程序进入死循环: package com.designmodal.design.juc01; import java.util.concurrent.TimeUnit; /** * @author D-L * @Classname T001_volatile * @Version 1.0 *
-
Java桥接模式原理及用法解析
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦. 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类.这两种类型的类可被结构化改变而互不影响. 我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法.其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的圆. 介绍 意图:将抽象部分与实现部分分离,使它们都可以独立的变化. 主要解决:在有多
-
Java图形界面Swing原理及用法解析
这篇文章主要介绍了Java图形界面Swing原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JButton组件 布局管理器 FlowLayout 流式布局 BorderLayout 方位布局 GridLayout 表格布局 绝对布局 JLable 组件 文本框组件 JPanel轻量级容器 创建事件监听类 (更换监听类实现监听) 窗口监听适配器 都可使用匿名类实现监听 每个监听方法都可以返回一个Event对象来返回监听值 以上就是本
-
Java反射技术原理与用法实例分析
本文实例讲述了Java反射技术原理与用法.分享给大家供大家参考,具体如下: 本文内容: 产生反射技术的需求 反射技术的使用 一个小示例 首发日期:2018-05-10 产生反射技术的需求: 项目完成以后,发现需要增加功能,并且希望增加功能并不需要停止项目运行. 在希望不关停项目运行的情况下,于是考虑到将功能都放到一个单独的项目之外的模块中,每一个功能实现都从这个模块中获取[实际上这个考虑应该是项目开始前就考虑,这个例子可能不是很好].于是就有了反射的产生.(这种思想有点类似工厂模式,如果学过设计
-
Java延迟队列原理与用法实例详解
本文实例讲述了Java延迟队列原理与用法.分享给大家供大家参考,具体如下: 延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到-- 应用场景比较多,比如延时1分钟发短信,延时1分钟再次执行等,下面先看看延时队列demo之后再看延时队列在项目中的使用: 简单的延时队列要有三部分:第一实现了Delayed接口的消息体.第二消费消息的消费者.第三存放消息的延时队列,那下面就来看看延时队列dem
-
Java泛型继承原理与用法详解
本文实例讲述了Java泛型继承原理与用法.分享给大家供大家参考,具体如下: 一 点睛 当创建了带泛型声明的接口.父类之后,可以为该接口创建实现类,或从该父类来派生子类,但值得指出的是,当使用这些接口.父类时不能再包含类型形参. 如果使用泛型类时没有传入实际的类型参数,Java编译器可能发出警告:使用了未经检查或不安全的操作--这就是泛型检查的警告. 二 实战--传入实际的类型参数 public class A1 extends Apple<String> { // 正确重写了父类的方法,返回值
-
Java局部内部类原理与用法实例分析
本文实例讲述了Java局部内部类原理与用法.分享给大家供大家参考,具体如下: 一 点睛 如果把一个内部类放在方法中定义,那么这个内部类就是一个局部内部类,局部内部类仅在方法里有效. 由于局部内部类不能在外部类的方法以外的地方使用,因此局部内部类也不能使用控制符合static修饰符修饰. 如果需要用局部内部类定义变量.创建实例或派生子类,那么都只能在局部内部类所在的方法中进行. 二 代码 public class LocalInnerClass { public static void main(
-
Java 反射机制原理与用法详解
本文实例讲述了Java 反射机制原理与用法.分享给大家供大家参考,具体如下: 反射反射,程序员的快乐! 1.什么是反射? Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:并且能改变它的属性.而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言.从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是
-
Java 的抽象类原理与用法分析
本文实例讲述了Java 的抽象类原理与用法.分享给大家供大家参考,具体如下: Java 的抽象类 用abstract关键字来修饰一个类时,这个类叫做抽象类: 用abstract来修饰一个方法时,该方法叫做抽象方法. 抽象方法:只有方法的声明,没有方法的实现.以分号结束:abstract int abstractMethod(int a ); 含有抽象方法的类必须被声明为抽象类. 抽象类不能被实例化.抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体.若没有重写全部的抽象方法,
随机推荐
- jquery实现图片跟随鼠标的实例
- CSS网页布局入门教程1:一列固定宽度
- MySQL数据库备份与恢复方法
- 用原生JS获取CLASS对象(很简单实用)
- Three.js的使用及绘制基础3D图形详解
- JavaScript 动态三角函数实例详解
- PHP定时任务获取微信access_token的方法
- 在WordPress中使用wp-cron插件来设置定时任务
- 初学Python函数的笔记整理
- Ajax请求中async:false/true的作用分析
- CSS教程之css选择器 、属性、值
- AJAX乱码解决新方法
- JQuery 获取Dom元素的实例讲解
- jQuery中:checkbox选择器用法实例
- 用js获取电脑信息(是使用与IE浏览器)
- WINDOWS漏洞:粘置键
- Android SQLite详解及示例代码
- 在JSP中使用formatNumber控制要显示的小数位数方法
- python实现K最近邻算法
- MongoDB数据库两阶段提交实现事务的方法详解