JAVA中的for循环几种使用方法讲解

目录
  • 一般写法
    • 1.遍历数组的传统方式
    • 2.遍历Collection对象的传统方式
  • 第二种写法
    • 3.遍历数组的简单方式
    • 4.遍历Collection的简单方式
  • 防止在循环体里修改循环变量
    • 5.禁止重新赋值
    • 6.允许修改状态
  • 类型相容问题
    • 7.使用和要被遍历的数组中的元素相同类型的循环变量
    • 8.使用和要被遍历的Collection中的元素相同类型的循环变量
    • 9.使用要被遍历的对象中的元素的上级类型的循环变量
    • 10.使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量

一般写法

1.遍历数组的传统方式

/* 建立一个数组 */
int [] integers={1,2,3,4};
/* 开始遍历 */
for (int j=0;j<integers.length;j++){
 int i = integers[j];
     System.out.println(i);
}

2.遍历Collection对象的传统方式

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection stringList = java.util.Arrays.asList(strings);
 /* 开始遍历 */
 for (Iterator itr = stringList.iterator(); itr.hasNext();) {
     Object str = itr.next();
     System.out.println(str);
 }

第二种写法

for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

3.遍历数组的简单方式

/* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};
 /* 开始遍历 */
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }

遍历数组的简单方式的等价代码

/* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};
 /* 开始遍历 */
 for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) {
     System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */
 }

4.遍历Collection的简单方式

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection list = java.util.Arrays.asList(strings);
 /* 开始遍历 */
 for (Object str : list) {
     System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
 }

遍历数组的简单方式的等价代码

/* 建立一个Collection */
 String[] strings = {"A", "B", "C", "D"};
 Collection stringList = java.util.Arrays.asList(strings);
 /* 开始遍历 */
 for (Iterator 变量名乙 = list.iterator(); 变量名乙.hasNext();) {
     Object str = 变量名乙.next();
     System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
 }

防止在循环体里修改循环变量

5.禁止重新赋值

int[] integers = {1, 2, 3, 4};
 for (final int i : integers) {
     i = i / 2; /* 编译时出错 */
 }

这只是禁止了对循环变量进行重新赋值。给循环变量的属性赋值,或者调用能让循环变量的内容变化的方法,是不被禁止的。

6.允许修改状态

Random[] randoms = new Random[]{new Random(1),new Random(2), new Random(3)};
 for (final Random r : randoms) {
     r.setSeed(4); /* 将所有Random对象设成使用相同的种子 */
     System.out.println(r.nextLong()); /* 种子相同,第一个结果也相同 */
 }

类型相容问题

7.使用和要被遍历的数组中的元素相同类型的循环变量

int[] integers = {1, 2, 3, 4};
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }

8.使用和要被遍历的Collection中的元素相同类型的循环变量

Collection< String> strings = new ArrayList< String>();
  strings.add("A");
  strings.add("B");
  strings.add("C");
  strings.add("D");
  for (String str : strings) {
  System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
  }

循环变量的类型可以是要被遍历的对象中的元素的上级类型。 例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等。

9.使用要被遍历的对象中的元素的上级类型的循环变量

String[] strings = {"A", "B", "C", "D"};
Collection< String> list = java.util.Arrays.asList(strings);
for (Object str : list) {
System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */
}

10.使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量

int[] integers = {1, 2, 3, 4};
for (Integer i : integers) {
System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
}

注意,这里说的“元素的类型”,是由要被遍历的对象的决定的――如果它是一个Object[]型的数组,那么元素的类型就是Object,即使里面装的都是String对象也是如此。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于Java中增强for循环使用的注意事项

    序言 for循环语句是java循环语句中最常用的循环语句,一般用在循环次数已知的情况下使用.for循环语句的语法格式如下: java语言 for语句的用法   for(初始化表达式;循环条件;操作表达式){          执行语句          -- } 开发过程中,使用for循环遍历集合或数组是司空见惯的一件事,大家也习惯这样操作,但是有时候为了简便,我们可能会使用增强for循环,也就是类似for(String s : strList )写法,但是有时候稍有不慎,可能会带来一些莫名奇妙

  • java foreach循环为什么不能赋值的讲解

    foreach循环为什么不能赋值 直接上代码 public class test4 { public static void main(String args[]){ int [] a=new int[3]; for(int j:a){ j=55; } } } 代码很简单 下面是java编译后的字节码 public class test4 { public test4(); Code: 0: aload_0 1: invokespecial #8 // Method java/lang/Obje

  • 最详细的Java循环结构解析之for循环教程(适合小白)

    目录 循环结构的分类 for循环 基本语法 for循环的执行顺序 实例解析 嵌套for循环 基本语法 实例解析 总结 循环结构的分类 在Java中,循环结构一共分为三类: 1.for循环 2.while循环 3.do-while循环 for循环 for循环是被使用最广泛的循环,使用计数器来实现循环结构,多用于循环次数已知的情况. 在关键字for后面的括号中,会有三个语句: 第一个语句是初始化变量语句,允许声明一个或多个整型变量 第二个语句是循环条件语句,在每次循环开始前,判断循环条件是否成立 第

  • 细数java for循环中的那些坑

    目录 1.循环语句的几种语法 2.循环中需要注意的点 2.1 循环如果满足了查找的需求 break 直接跳出,不要浪费性能 2.2 循环集合的时候能用for each 的尽量用for each 2.3 不要写空的死循环 2.4 不要在循环中new对象 2.5 可以在循环外做的,不要放到循环内 2.6 循环的建议 3.循环中的坑 3.1 byte导致死循环 3.2 在循环中反向操作索引导致死循环 3.3 在操作集合的时候不要在循环里进行元素的 remove/add 操作 3.4 不要再循环内多次访

  • java中for循环执行的顺序图文详析

    for循环基础 for循环是最灵活也是最常用的循环结构,表达式一般如下: for(条件表达式1:条件表达式2:条件表达式3){ 语句块: } 接下来详细介绍Java for循环执行顺序的相关内容,先看看一道面试题, 来自小米笔试 static boolean foo(charc) { System.out.print(c); return true; } public static void main(String[] args) { int i =0; for(foo('B');foo('A'

  • 浅谈Java8 的foreach跳出循环break/return

    java8中跳出循环不能使用break? 通过测试发现: 对于java8中的特殊写法lamada表达式中,不能使用break,会提示错误; java8中使用return,会跳出当前循环,继续下一次循环,作用类似continue; java8中使用foreach,但是不是lamada表达式写法,可以正常使用break或者return,可以直接跳出循环. public class TestForEachJava8 { public static void main(String[] args) {

  • Java for循环常见优化方法案例详解

    目录 方法一:最常规的不加思考的写法 方法二:数组长度提取出来 方法三:数组长度提取出来 方法四:采用倒序的写法 方法五:Iterator 遍历 方法六:jdk1.5后的写法 方法七:循环嵌套外小内大原则 方法八:循环嵌套提取不需要循环的逻辑 方法九:异常处理写在循环外面 前言 我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式. 首先,我们初始化一个集合 list,如下

  • JAVA中的for循环几种使用方法讲解

    目录 一般写法 1.遍历数组的传统方式 2.遍历Collection对象的传统方式 第二种写法 3.遍历数组的简单方式 4.遍历Collection的简单方式 防止在循环体里修改循环变量 5.禁止重新赋值 6.允许修改状态 类型相容问题 7.使用和要被遍历的数组中的元素相同类型的循环变量 8.使用和要被遍历的Collection中的元素相同类型的循环变量 9.使用要被遍历的对象中的元素的上级类型的循环变量 10.使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量 一般写法 1.遍历数组

  • java 中ArrayList迭代的两种实现方法

    java 中ArrayList迭代的两种实现方法 Iterator与for语句的结合来实现,代码很简单,大家参考下. 实现代码: package cn.us; import java.util.ArrayList; import java.util.Iterator; //ArrayList迭代的两种方法 //Iterator与for语句的结合 public class Test1 { public static void main(String[] args) { ArrayList arra

  • Java中List排序的三种实现方法实例

    目录 前言 1.使用 Comparable 排序 2.使用 Comparator 排序 2.1 新建 Comparator 比较器 2.2 匿名类比较器 3.使用 Stream 流排序 总结 前言 在某些特殊的场景下,我们需要在 Java 程序中对 List 集合进行排序操作.比如从第三方接口中获取所有用户的列表,但列表默认是以用户编号从小到大进行排序的,而我们的系统需要按照用户的年龄从大到小进行排序,这个时候,我们就需要对 List 集合进行自定义排序操作了. ​List 排序的常见方法有以下

  • java中关于Map的三种遍历方法详解

    map的三种遍历方法!集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ 复制代码 代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor. */package cn.tsp2c.liubao;import java.util.Collection;import java.util.HashMap;import java.util

  • Java中List for循环的6种写法总结(推荐)

    如下所示: List<String> list = new ArrayList<String>(); /** * 方法一:最普通的不加思考的写法 * <p> * 优点:较常见,易于理解 * <p> * 缺点:每次都要计算list.size() */ for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } /** * 方法二:数组长度提取出来 * <p&g

  • Java中实现线程的三种方式及对比_动力节点Java学院整理

    Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,run方法的方

  • Java基于递归和循环两种方式实现未知维度集合的笛卡尔积算法示例

    本文实例讲述了Java基于递归和循环两种方式实现未知维度集合的笛卡尔积.分享给大家供大家参考,具体如下: 什么是笛卡尔积? 在数学中,两个集合X和Y的笛卡儿积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员. 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}. 如何用程序算法实现笛卡尔积? 如果编程前已知集合的数量

  • Java中遍历ConcurrentHashMap的四种方式详解

    这篇文章主要介绍了Java中遍历ConcurrentHashMap的四种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方式一:在for-each循环中使用entries来遍历 System.out.println("方式一:在for-each循环中使用entries来遍历");for (Map.Entry<String, String> entry: map.entrySet()) { System.out.pr

  • Java中break的第三种用法说明

    在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破坏程序的结构,所以我们一般不会去使用这种功能.但是在某些情况下,goto语句对于流程控制很有价值并且结构合法. 比如当退出深度嵌套的一系列循环时,goto语句很好用.虽然Java中保留了goto关键字,但是没有goto语句,也没有任何用到这个关键字的地方,所以为了能够使用类似像goto语句这样的功能,Java

  • Java中生成随机数的4种方式与区别详解

    目录 在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景. 1.Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数.Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数.在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的

随机推荐