文档章节

关于java中for和foreach循环

HiAscend
 HiAscend
发布于 2017/07/05 20:39
字数 451
阅读 5
收藏 0
  • 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);
              }
          }
      }
      View Code

       

  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);
              }
          }
      }
      View Code

   

二、局限性。

  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]
      View Code

       

  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]
      View Code

 特别注意的地方!!

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

本文转载自:http://www.cnblogs.com/adeng/p/5681713.html

共有 人打赏支持
HiAscend
粉丝 0
博文 24
码字总数 923
作品 0
东城
程序员
java中foreach循环空值问题

foreach空指针 平常经常使用foreach循环,觉得很方便没有什么问题,直到最近使用foreach循环遇到了空指针问题。 java重现 这样实现的话,会报。 解决 那我们在java中该如何进行比较靠谱的循环...

亚林瓜子
08/28
0
0
Controlling Execution

逗号操作符 逗号操作符在java中特殊之处在于两个地方: 1. 定义同种类型的变量时可以这样写: int i=10,j=20;//只有同种变量才行 2. 在for循环中的初始化条件和变化的步骤中对于同种类型的可...

meisme
2013/05/31
0
0
-Java forEach中 Lambda Expr中的 final变量要求

本文是关于 -Java Lambda Expression在forEach方法的应用讨论。对比其他编程语言的foreach 操作(文末附带7种主要编程语言的Loop HashMap by forEach的程序片段),Java 8引入的运用 Lambda E...

wadelau
07/19
0
0
几种编程语言的foreach循环比较

几种编程语言的foreach循环比较 1.Java: JDK1.5后提供了foreach循环语法格式:for(type variableName : array|collection){variableName自动迭代访问每个元素;}实例 2 . PHP:php 4 引入了 ...

老六是Jerry
2013/02/26
0
0
Android编译系统 - pathmap.mk(宏)

build/core/pathmap.mk 文件定义了一个列表pathmap_INCL,列表中每项是"短名:路径"对。宏函数include-path-for将会使用这个列表,来通过短名获取相对于的路径, 如:$(call include-path-for...

我爱咸蛋黄
2013/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

5whys分析法在美团工程师中的实践

前言 网站的质量和稳定性对于用户和公司来说至关重要,但是在网站的快速发展过程中,由于各种原因导致事故不可避免的发生,这些大大小小的事故对公司难免会造成一些负面的影响,为了避免同类...

Skqing
20分钟前
0
0
Android 接收监听开机完成,并且开机自启动

1,定义一个广播接收者的类 ,并重写抽象方法 public class BootCompleteReceiver extends BroadcastReceiver 2,在Androidmanifest 注册 <receiver android:name=".receiver.BootCompleteRece......

lanyu96
23分钟前
1
0
小程序记录

1、button的边框、角等需要在伪元素after修改去除

originDu
25分钟前
0
0
微博什么技术啊……还说支持八个明星并发出轨,结果…

是的,大家可能都知道了,女神张靓颖结婚了。。 我去,写错了,是————赵丽颖。 为什么我头脑一瞬间出现的是张靓颖,作为一个码农,技术宅,拼音缩小都是 ZLY,博主我真有点傻傻分不清楚了...

Java技术栈
25分钟前
3
0
模块化

1,什么是模块化? 模块化是指将一个复杂的系统分解为多个模块,方便编码。 2,为什么要用模块化? 降低复杂性,降低代码耦合度,部署方便,提高效率。 3,模块化的好处? a,避免命名冲突,减少...

羊皮卷
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部