文档章节

关于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中该如何进行比较靠谱的循环...

亚林瓜子
2018/08/28
0
0
4 种 HashMap 中对象遍历的方法

使用 Java 5 的 foreach 进行迭代和循环 输出结果 ------------------------------------------------ Iterating or looping map using java5 foreach looop key: name value: oschina -----......

红薯
2012/03/16
1K
3
C#语言————第二章 C#语言快速热身

第二章 C#语言快速热身 *一.选择结构** 1:if选择结构与java的if选择结构语法完全相同 2:switch选择结构 ①:常量表达式的值可以是,string char int ②:case表达式的值不能重复 ③:case语...

九之者
2018/11/11
0
0
Controlling Execution

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

meisme
2013/05/31
0
0
Lambda 表达式有何用处?如何使用?(针对Java8)

什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的J...

亭子happy
2018/06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ToolBar控件在C#开发APP中的使用方式【附案例源码】——Smobiler移动开发平台

控件说明 底部工具栏控件。 效果演示 其他效果 该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾。 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向。 Flex...

amanda112
17分钟前
0
0
模块

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等...

gtandsn
23分钟前
1
0
代码之外的生存指南,这6本书助你提升软实力

上期盟主向大家推荐了6本技术类书籍,引起了热烈反响。那么,工作之余,还有哪些好书能够为你打开更多的精彩世界呢?本期,多位知名企业的技术大咖将继续为您带来好书推荐,在新的一年里,为...

安卓绿色联盟
26分钟前
3
0
5分钟用Jitpack发布开源库

作者: 菜刀文 Demo:https://github.com/helen-x/JitPackReleaseDemo 项目开发中会用到很多开源库, 他们一般通过Maven/Gradle依赖进来的. 演而优则唱,开发越来越溜以后, 你是否也蠢蠢欲动,想发...

SuShine
32分钟前
2
0
状态码 301 与 302的区别

302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。 而301重定向是永久的重定向,搜索引擎在抓取新的内容的同...

小草先森
38分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部