`
yydy1983
  • 浏览: 47673 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 5 中增强的for循环——for/in (for each)

    博客分类:
  • JAVA
阅读更多

for/in(for each)循环自动控制一次遍历数组中的每一个元素,然后将它赋值给一个临时变量(如上述代码中的int n),然后在循环体中可直接对此临时变量进行操作。

这种循环的缺点是:       
  对于数组,不能方便的访问下标值;
  对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator).
除了简单遍历并读取其中的内容外,不建议使用增强的for循环。

for/in(for each)循环自动控制一次遍历数组中的每一个元素,然后将它赋值给一个临时变量(如上述代码中的int n),然后在循环体中可直接对此临时变量进行操作。这种循环的缺点是:

 1. 只能顺次遍历所有元素,无法实现较为复杂的循环,如在某些条件下需要后退到之前遍历过的某个元素;

 2. 循环变量(i)不可见,如果想知道当前遍历到数组的第几个元素,只能这样写:

 int i = 0;

 for (int n : array) {

     System.out.println("This " + i + "-th element in the array is " + n);

     i++;

}

遍历集合:
for/in循环遍历的集合必须是实现Iterable接口的
虽然对集合进行的for/in操作会被编译器转化为Iterator操作,但是使用for/in时,Iterator是不可见的,所以如果需要调用Iterator.remove()方法,或其他一些操作, for/in循环就有些力不从心了。

遍历集合:
for/in循环遍历的集合必须是实现Iterable接口的
虽然对集合进行的for/in操作会被编译器转化为Iterator操作,但是使用for/in时,Iterator是不可见的,所以如果需要调用Iterator.remove()方法,或其他一些操作, for/in循环就有些力不从心了。

<script type="text/javascript"></script>

 

        综上所述,Java 5.0中提供的增强的for循环——for/in(for each)循环能让我们的代码更加简洁,让程序员使用时更加方便,但是也有它的局限性,所以一定要根据实际需要有选择性地使用,不要盲目追求所谓的“新特性”。

分享到:
评论

相关推荐

    JDK1.5中增强for循环

    随着 Java 技术的不断发展,为了提高开发效率、简化代码编写并增强可读性,JDK 1.5 引入了一系列的新特性,其中就包括了增强 for 循环(Enhanced For Loop),也被称作“for-each”循环。这一特性极大地简化了数组和...

    迭代大师的修炼之道:Java中Iterator与增强for循环的深度解析

    `Enhanced for loop`,也称为for-each循环,是在Java 5中引入的一种更加简洁的迭代方式。它简化了代码编写,并提高了程序的可读性和安全性。 **2. 使用方法** 只需声明一个变量,并将其设置为要遍历的集合类型即可...

    java技巧java中可以用来循环遍历任何一个集合的通用方法

    除了使用迭代器之外,Java还提供了一种更简洁的方式来遍历集合——增强for循环(也称为“for-each”循环)。这种方式的语法更简单,可读性更好,但其实质仍然是通过迭代器实现的。 ```java public void print...

    java编程思想教学材料——第四讲Controlling Execution

    此外,Java引入了`for-each`循环,也称为增强型`for`循环,简化了数组和集合的遍历。`for-each`循环不需要显式地处理索引,只需指定遍历的集合和迭代变量。例如,在`ForEachFloat`类中,可以方便地遍历浮点数数组。 ...

    java基础——数组及其应用(csdn)————程序.pdf

    在使用数组时,我们经常使用普通for循环或增强型for循环(for-each循环)遍历数组。例如: ```java for (int x : array) { System.out.println(x); } ``` 数组还可以作为方法的参数传递,或者作为方法的返回值。...

    JAVA雇员管理系统——文件形式

    比如,`for-each`循环遍历集合,`if`语句进行条件判断,`switch`语句处理不同操作。 5. **异常处理**:JAVA的异常处理机制是关键,可以确保程序在遇到错误时能优雅地处理并给出反馈。在文件操作中,可能出现的异常...

    Java知识——精华总结(1).doc

    Java5引入了增强的for循环(`for-each`循环),使遍历数组变得更加简洁。 #### 三、面向对象(1) **1. 什么叫面向对象?** 面向对象编程(OOP)是一种编程范式,它使用对象来设计软件。对象是由数据和可以操作这些...

    Agile Java (EN)

    还有就是java5 的一些新特性,如参数化类型,for-each 循环。其实我主要是看有关java编程方面的,而测试驱动就没那么关注。从这本书中学到了很多编程技巧和规范,以及加深了对面向对象基本原理的理解。看完才知道...

    java1.7 特性实现

    Java 7允许在for-each循环中遍历数组和集合,使得代码更加简洁易读。例如: ```java int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { System.out.println(num); } ``` 6. ** switch 语句支持...

    jdk1.7 官方正式版64位——亲测可用.zip

    5. **改进的for-each循环**:可以遍历数组的子序列和Map的键值对。 6. **Fork/Join框架**:这是一个并行计算框架,用于将大任务分解成小任务并行执行,从而提升程序性能。 7. **动态语言支持**:Java 7通过JSR 292...

    beginning java

    自动装箱和拆箱简化了基本类型与包装类之间的转换,枚举类型增强了常量的使用,可变参数允许函数接受任意数量的参数,泛型则提高了代码的类型安全性和重用性,而for-each循环让遍历集合变得更为简洁。 其次,本书会...

    《软件开发基础(Java)》实验报告-Java集合框架.docx

    3. **掌握集合遍历的基本用法**:熟悉使用`for-each`循环、迭代器`Iterator`以及增强型for循环等方法遍历集合中的元素。 4. **了解Stream的基本用法**:学习如何使用Java 8新特性之一——流式处理,对集合进行更...

    an-coding-with-java-8.rar_Java 8

    在这个“an-coding-with-java-8.rar”压缩包中,我们可以预见到一系列的Java 8编程练习,旨在通过不同的方法实现同一个功能——求列表元素的和,涉及到了流(Stream)、循环(for-each)以及递归等编程概念。 首先,让...

    head first java清晰版(5)

    在这一章中,你会学习如何使用`add()`、`remove()`、`contains()`等方法操作集合,以及如何遍历集合(例如,使用for-each循环)。此外,还会介绍泛型的概念,这能帮助你编写类型安全的代码,并减少类型转换的麻烦。 ...

    scjp考试模拟机——基于jdk5.0

    6. **for-each循环**:简化了迭代集合元素的过程,使代码更加易读。 7. **静态导入**:允许一次性导入某个类的所有静态成员,避免了使用类名进行调用。 使用这个模拟机,考生可以更好地理解和掌握这些JDK 5.0的新...

    JDK5.0新特性 反射、枚举.rar

    以下将详细讲解标题和描述中提到的几个关键特性:反射、枚举以及for-each循环。 首先,我们来看反射(Reflection)。反射是Java提供的一种能够在运行时检查类、接口、字段和方法的能力。通过反射,我们可以动态地...

    JSP扩展——自定义标签

    - `IterationTag`接口:适用于需要处理循环的标签,如在for-each循环中。 - `BodyTag`接口:适用于需要处理标签体内容的标签。 通常,我们继承`TagSupport`或`BodyTagSupport`类来创建自定义标记处理类。`...

    java架构师零基础学习01-05天.rar

    在Java中,我们可以使用for-each循环遍历数组,简化代码并提高可读性。 Day05的重点是数组和变量。变量是存储数据的容器,它们的值可以在程序运行期间改变。数组变量可以引用整个数组,而索引则用于访问数组中的...

    NewFeature.zip

    Java 7引入了一种新的循环结构——增强for循环(也称为foreach循环),用于遍历数组和集合。以前,我们需要使用迭代器来遍历集合,现在只需一行代码就能完成,如`for (String s : names) { ... }`,这样使得代码更...

Global site tag (gtag.js) - Google Analytics