`
612星球
  • 浏览: 9269 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

java的foreach语句

 
阅读更多
foreach语句使用总结 foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){     引用了x的java语句;}下面通过两个例子简单例子看看foreach是如何简化编程的。

一、foreach简化数组和集合的遍历
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-12-3
* Time: 16:58:24
* Java5新特征之foreach语句使用总结
*/
public class TestArray {
    public static void main(String args[]) {
         TestArray test = new TestArray();
         test.test1();
         test.listToArray();
         test.testArray3();

     }

    /**
     * foreach语句输出一维数组
     */
    public void test1() {
        //定义并初始化一个数组
        int arr[] = {2, 3, 1};
         System.out.println("----1----排序前的一维数组");
        for (int x : arr) {
             System.out.println(x); //逐个输出数组元素的值
         }

        //对数组排序
         Arrays.sort(arr);

        //利用java新特性for each循环输出数组
         System.out.println("----1----排序后的一维数组");
        for (int x : arr) {
             System.out.println(x); //逐个输出数组元素的值
         }
     }

    /**
     * 集合转换为一维数组
     */
    public void listToArray() {
        //创建List并添加元素
         List<String> list = new ArrayList<String>();
         list.add("1");
         list.add("3");
         list.add("4");

        //利用froeach语句输出集合元素
         System.out.println("----2----froeach语句输出集合元素");
        for (String x : list) {
             System.out.println(x);
         }

        //将ArrayList转换为数组
         Object s[] = list.toArray();

        //利用froeach语句输出集合元素
         System.out.println("----2----froeach语句输出集合转换而来的数组元素");
        for (Object x : s) {
             System.out.println(x.toString()); //逐个输出数组元素的值
         }
     }

    /**
     * foreach输出二维数组测试
     */
    public void testArray2() {
        int arr2[][] = {{4, 3}, {1, 2}};
         System.out.println("----3----foreach输出二维数组测试");
        for (int x[] : arr2) {
            for (int e : x) {
                 System.out.println(e); //逐个输出数组元素的值
             }
         }
     }

    /**
     * foreach输出三维数组
     */
    public void testArray3() {
        int arr[][][] = {
                 {{1, 2}, {3, 4}},
                 {{5, 6}, {7, 8}}
         };

         System.out.println("----4----foreach输出三维数组测试");
        for (int[][] a2 : arr) {
            for (int[] a1 : a2) {
                for (int x : a1) {
                     System.out.println(x);
                 }
             }
         }
     }
}运行结果:----1----排序前的一维数组
2
3
1
----1----排序后的一维数组
1
2
3
----2----froeach语句输出集合元素
1
3
4
----2----froeach语句输出集合转换而来的数组元素
1
3
4
----4----foreach输出三维数组测试
1
2
3
4
5
6
7
8

Process finished with exit code 0二、foreach语句的局限性通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。下面看一个例子就明白了:
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-12-3
* Time: 17:07:30
* foreach语句的局限性
*/
public class TestArray2 {

    public static void main(String args[]) {
        //定义一个一维数组
        int arr[] = new int[4];
         System.out.println("----未赋值前输出刚刚定义的数组----");
        for (int x : arr) {
             System.out.println(x);
         }

        //通过索引给数组元素赋值
         System.out.println("----通过循环变量给数组元素赋值----");
        for (int i = 3; i > 0; i--) {
             arr[i] = i;
         }
        //循环输出创建的数组
         System.out.println("----赋值后,foreach输出创建好的数组----");
        for (int x : arr) {
             System.out.println(x);
         }
     }
}
运行结果:----未赋值前输出刚刚定义的数组----
0
0
0
0
----通过循环变量给数组元素赋值----
----赋值后,foreach输出创建好的数组----
0
1
2
3
分享到:
评论

相关推荐

    增强for(part1:part2)part3; 

    foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。   foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写...

    浅析java的foreach循环

    foreach语句是java5之后的新特征之一,在循环遍历数组、集合方面更加简洁,有需要的朋友可以参考一下

    编译原理课程设计(Java语言)-LR分析法,foreach循环语句

    通过设计、编制、调试一个典型的赋值语句的语义分析程序,实现对语法分析程序所提供的语法树进行语义检查以及语义翻译工作,进一步掌握常用的语义分析和语法制导的翻译方法。

    Java中遍历数组使用foreach循环还是for循环?

    主要介绍了Java中遍历数组使用foreach循环还是for循环?本文着重讲解for语句的语法并给出使用实例,同时总结出尽量使用foreach语句遍历数组,需要的朋友可以参考下

    基于工作任务的Java+Web应用教程第五章任务1-5.zip

    3.使用JSTL的&lt;c:forEach&gt;标签取代Category.isp和Produetjsp中的for循环语句。 (1)参考教材完成使用JSTL的&lt;c:forEach&gt;标签取代Category.jsp的for循环语句。 (2)自已完成使用JSTL的&lt;c:forEach&gt;标签取代Productjsp中的...

    Java开发详解.zip

    031309_【第13章:Java类集】_foreach及Enumeration接口笔记.pdf 031310_【第13章:Java类集】_Map接口笔记.pdf 031311_【第13章:Java类集】_Map接口使用的注意事项笔记.pdf 031312_【第13章:Java类集】_...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    Thinking in java4(中文高清版)-java的'圣经'

    2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 ...

    10大必须掌握的c++11特性1

    1、新增基于范围的for循环 类似Java中foreach语句,为遍历数组提供了很大方便 5、显示重写(覆盖)override和final 在C++03中,

    java8看不到源码-java8:java8

    Interfaces,使用forEach作为接口中默认方法的例子 Lambda1:Lambda 表达式 Lambda2:流、可选、方法引用 Euler1:IntStreamBuilder,流 Euler2:使用列表作为流和 Optionals Euler2Iter:使用迭代器作为没有 yield ...

    java7hashmap源码-Note-For-Java:Java笔记

    2.java在7.0之后switch语句case后面支持String类型。 3.java嵌套循环中内部循环使用break或者continue来控制,外部循环结束或者跳过可以使用标签,示例代码: out: for (int i = 0; i &lt; 10; i++) { System.out....

    javatools源码-java2cpp:将Java源代码转换为等效C++代码的工具

    java工具源码Java2cpp Java2cpp是将Java源代码转换为等效cpp代码的工具。 支持的功能 ...语句翻译(表达式,如果,对于foreach,while,则切换,try-catch,label,return) 自动导入标题 CMake支持 依存关系

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例038 foreach循环优于for循环 47 实例039 终止循环体 48 实例040 循环体的过滤器 49 实例041 循环的极限 50 第3章 数组与集合的应用 51 3.1 数组演练 52 实例042 获取一维数组最小值 52 实例043 将二维数组中的...

    开发专家·编程大讲坛:C#核心开发技术从入门到精通.tag.pdf

    依次讲解了C#开发基础、搭建C#开发环境、变量与常量、复杂的变量类型和.NET框架类、表达式和运算符、流程控制语句、面向对象编程技术基础、方法、C#类、C#集合、数组和集合类、foreach语句、自定义集合类和迭代器、...

    SSM框架的学习与应用-Java EE企业级应用开发学习记录(第三天)Mybatis的深入学习(动态sql的操作)

    4.包含所有的mapper,已经各个SQL映射语句的测试类,可以帮助快速理解! 详细解释了什么是动态SQL,可以根据不同条件动态构建SQL语句,避免大量重复代码。 介绍了动态SQL常用元素:、、、、、&lt;foreach&gt;等。 通过元素...

    【03-流程控制与数组】

    •从JDK1.5 之后,Java提供了一种更简单的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用 foreach循环遍历数组和集合元素时,无须获得数组和集合长度,无须根据索引来访问数组元素和集合元素, foreach...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

Global site tag (gtag.js) - Google Analytics