• for循环中的循环条件中的变量只求一次值!具体看最后的图片
  • foreach语句是java5新增,在遍历数组、集合的时候,foreach拥有不错的性能。
  • foreach是for语句的简化,但是foreach并不能替代for循环。可以这么说,任何foreach都能改写为for循环,但是反之则行不通。
  • foreach不是java中的关键字。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、Vector、数组等。
  • foreach的格式:

    for(元素类型T 每次循环元素的名称O : 循环对象){

        //对O进行操作

    }

一、常见使用方式。

  1. foreach遍历数组。
    1.   

      /**
      * 描述:
      * Created by ascend on 2016/7/8.
      */
      public class Client {
      public static void main(String[] args) {
      String[] names = {"beibei", "jingjing"};
      for (String name : names) {
      System.out.println(name);
      }
      }
      }
  2. foreach遍历List。
    1.   

      /**
      * 描述:
      * Created by ascend on 2016/7/8.
      */
      public class Client { public static void main(String[] args) {
      List<String> list = new ArrayList();
      list.add("a");
      list.add("b");
      list.add("c");
      for(String str : list){
      System.out.println(str);
      }
      }
      }

   

二、局限性。

  foreach虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对源数组或者集合进行修改。

  1. 数组
    1.   

      /**
      * 描述:
      * Created by ascend on 2016/7/8.
      */
      public class Client { public static void main(String[] args) {
      String[] names = {"beibei", "jingjing"};
      for (String name : names) {
      name = "huanhuan";
      }
      //foreach
      System.out.println("foreach:"+Arrays.toString(names));
      //for
      for (int i = 0; i < names.length; i++) {
      names[i] = "huanhuan";
      }
      System.out.println("for:"+Arrays.toString(names));
      }
      } 输出:
      foreach:[beibei, jingjing]
      for:[huanhuan, huanhuan]
  2. 集合
    1.   

      /**
      * 描述:
      * Created by ascend on 2016/7/8.
      */
      public class Client { public static void main(String[] args) {
      List<String> names = new ArrayList<String>();
      names.add("beibei");
      names.add("jingjing");
      //foreach
      for(String name:names){
      name = "huanhuan";
      }
      System.out.println(Arrays.toString(names.toArray()));
      //for
      for (int i = 0; i < names.size(); i++) {
      names.set(i,"huanhuan");
      }
      System.out.println(Arrays.toString(names.toArray()));
      }
      } 输出:
      [beibei, jingjing]
      [huanhuan, huanhuan]

 特别注意的地方!!

原创:http://www.cnblogs.com/adeng/p/5681713.html

关于java中for和foreach循环的更多相关文章

  1. Java数组使用以及foreach循环

    Java数组使用以及foreach循环 二话不说,先甩一个简单的程序: final int NUM= 10; int[] arrays = new int[NUM]; System.out.print ...

  2. JAVA中简单的for循环竟有这么多坑,你踩过吗

    JAVA中简单的for循环竟有这么多坑,你踩过吗 实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式 ...

  3. Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用

    ylbtech-Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用 1.返回顶部 1. Java 实例 - for 和 foreach循环使用 ...

  4. Java中的增强 for 循环 foreach

    foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理.能够提高性能,并减少代码出错的几率.在 J ...

  5. Java 中新增的 foreach 的用法

      JDK1.5加入的增强for和循环. foreach语句使用总结 增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合. part1定义了一个局部 ...

  6. java中三种for循环之间的对比

    普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreac ...

  7. JavaScript中如何中断forEach循环

    先来看下forEach的实现 // Production steps of ECMA-262, Edition 5, 15.4.4.18// Reference: http://es5.github. ...

  8. javascript——加强for循环 和Java中的加强for循环的区别

    javascript中获得的是下标      in var id=[4,5,6]; for (var index in id) { console.log(id[index]); } Java中获得的 ...

  9. Java的迭代和foreach循环

    Java的迭代(interation statement) Java的迭代(interation statement) 其实就是循环控制语句while.do-while和for,因为他们会从重复地运行 ...

随机推荐

  1. Mac下快捷键列表

    主界面 command + tab 切换程序 command + ` 在程序内切换界面 command + w 关闭界面 command + q 关闭程序 command + option + esc ...

  2. Tsinsen A1505. 树(张闻涛) 倍增LCA,可持久化线段树,DFS序

    题目:http://www.tsinsen.com/A1505 A1505. 树(张闻涛) 时间限制:1.0s   内存限制:512.0MB    总提交次数:196   AC次数:65   平均分: ...

  3. 交叉编译中的 --sysroot 等等在编译时的作用

    --sysroot=dir 的作用 如果在编译时指定了-sysroot=dir 就是为编译时指定了逻辑目录.编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前 ...

  4. Shell函数:Shell函数返回值、删除函数、在终端调用函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...

  5. hdoj 1509 Windows Message Queue【优先队列】

    Windows Message Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  6. 398. Random Pick Index

    随机返还target值的坐标(如果存在多个target). 不太明白为什么这个题是M难度的. 无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了. 要么开始简单点,都存 ...

  7. codeforces 732D

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  8. thinkphp如何写find_in_set这样的orm查询封装

    今天写thinkphp的orm封装的时候 需要写一个 select * from table where user_id=xxx and find_in_set(100,group_id)这样的SQL ...

  9. C++ 让控制台运行到最后按下回车键才结束的3种方法

    初学C++,弄懂了3种在控制台最后需要按回车键才退出返回编辑框的方法 1.最简单的编译生成后,通过Ctrl+F5运行即可(推荐自己调试的时候用,因为程序在别人那里是一闪而过的) 2.先添加头文件“#i ...

  10. Apache Shiro 集成-Cas

    http://blog.csdn.net/peterwanghao/article/details/8825008 Shiro集成CAS是在1.2版本里新增的功能. Shiro-cas模块将应用作为C ...