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)循环能让我们的代码更加简洁,让程序员使用时更加方便,但是也有它的局限性,所以一定要根据实际需要有选择性地使用,不要盲目追求所谓的“新特性”。
分享到:
相关推荐
随着 Java 技术的不断发展,为了提高开发效率、简化代码编写并增强可读性,JDK 1.5 引入了一系列的新特性,其中就包括了增强 for 循环(Enhanced For Loop),也被称作“for-each”循环。这一特性极大地简化了数组和...
`Enhanced for loop`,也称为for-each循环,是在Java 5中引入的一种更加简洁的迭代方式。它简化了代码编写,并提高了程序的可读性和安全性。 **2. 使用方法** 只需声明一个变量,并将其设置为要遍历的集合类型即可...
除了使用迭代器之外,Java还提供了一种更简洁的方式来遍历集合——增强for循环(也称为“for-each”循环)。这种方式的语法更简单,可读性更好,但其实质仍然是通过迭代器实现的。 ```java public void print...
此外,Java引入了`for-each`循环,也称为增强型`for`循环,简化了数组和集合的遍历。`for-each`循环不需要显式地处理索引,只需指定遍历的集合和迭代变量。例如,在`ForEachFloat`类中,可以方便地遍历浮点数数组。 ...
在使用数组时,我们经常使用普通for循环或增强型for循环(for-each循环)遍历数组。例如: ```java for (int x : array) { System.out.println(x); } ``` 数组还可以作为方法的参数传递,或者作为方法的返回值。...
比如,`for-each`循环遍历集合,`if`语句进行条件判断,`switch`语句处理不同操作。 5. **异常处理**:JAVA的异常处理机制是关键,可以确保程序在遇到错误时能优雅地处理并给出反馈。在文件操作中,可能出现的异常...
Java5引入了增强的for循环(`for-each`循环),使遍历数组变得更加简洁。 #### 三、面向对象(1) **1. 什么叫面向对象?** 面向对象编程(OOP)是一种编程范式,它使用对象来设计软件。对象是由数据和可以操作这些...
还有就是java5 的一些新特性,如参数化类型,for-each 循环。其实我主要是看有关java编程方面的,而测试驱动就没那么关注。从这本书中学到了很多编程技巧和规范,以及加深了对面向对象基本原理的理解。看完才知道...
Java 7允许在for-each循环中遍历数组和集合,使得代码更加简洁易读。例如: ```java int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { System.out.println(num); } ``` 6. ** switch 语句支持...
5. **改进的for-each循环**:可以遍历数组的子序列和Map的键值对。 6. **Fork/Join框架**:这是一个并行计算框架,用于将大任务分解成小任务并行执行,从而提升程序性能。 7. **动态语言支持**:Java 7通过JSR 292...
自动装箱和拆箱简化了基本类型与包装类之间的转换,枚举类型增强了常量的使用,可变参数允许函数接受任意数量的参数,泛型则提高了代码的类型安全性和重用性,而for-each循环让遍历集合变得更为简洁。 其次,本书会...
3. **掌握集合遍历的基本用法**:熟悉使用`for-each`循环、迭代器`Iterator`以及增强型for循环等方法遍历集合中的元素。 4. **了解Stream的基本用法**:学习如何使用Java 8新特性之一——流式处理,对集合进行更...
在这个“an-coding-with-java-8.rar”压缩包中,我们可以预见到一系列的Java 8编程练习,旨在通过不同的方法实现同一个功能——求列表元素的和,涉及到了流(Stream)、循环(for-each)以及递归等编程概念。 首先,让...
在这一章中,你会学习如何使用`add()`、`remove()`、`contains()`等方法操作集合,以及如何遍历集合(例如,使用for-each循环)。此外,还会介绍泛型的概念,这能帮助你编写类型安全的代码,并减少类型转换的麻烦。 ...
6. **for-each循环**:简化了迭代集合元素的过程,使代码更加易读。 7. **静态导入**:允许一次性导入某个类的所有静态成员,避免了使用类名进行调用。 使用这个模拟机,考生可以更好地理解和掌握这些JDK 5.0的新...
以下将详细讲解标题和描述中提到的几个关键特性:反射、枚举以及for-each循环。 首先,我们来看反射(Reflection)。反射是Java提供的一种能够在运行时检查类、接口、字段和方法的能力。通过反射,我们可以动态地...
- `IterationTag`接口:适用于需要处理循环的标签,如在for-each循环中。 - `BodyTag`接口:适用于需要处理标签体内容的标签。 通常,我们继承`TagSupport`或`BodyTagSupport`类来创建自定义标记处理类。`...
在Java中,我们可以使用for-each循环遍历数组,简化代码并提高可读性。 Day05的重点是数组和变量。变量是存储数据的容器,它们的值可以在程序运行期间改变。数组变量可以引用整个数组,而索引则用于访问数组中的...
Java 7引入了一种新的循环结构——增强for循环(也称为foreach循环),用于遍历数组和集合。以前,我们需要使用迭代器来遍历集合,现在只需一行代码就能完成,如`for (String s : names) { ... }`,这样使得代码更...