/*
* 学好程序的方法:
*
* 1 分析清楚任何一个程序、函数、类和对象和变量在内存中清楚的内存分配和运行调用情况
* 2 分析清楚任何一个Java类的实现情况
* 3 多看看源代码
4 每一个知识点网上都有详细说明,除了学书本的,也要补充网上的知识
*
* */
清单 1
// 使用 for-each 类型的循环.
class ForEach {
public static void main(String args[]) {
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sum = 0;
// 使用for-each 类型的循环求和
for(int x : nums) {
System.out.println("Value is: " + x);
sum += x;
}
System.out.println("Summation: " + sum);
}
}
清单 2
// 在 for-each 循环中使用break,下面程序仅计算nums的前五个元素之和.
class ForEach2 {
public static void main(String args[]) {
int sum = 0;
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 求和.
for(int x : nums) {
System.out.println("Value is: " + x);
sum += x;
if(x == 5) break; // 当X是5时跳出循环
}
System.out.println("Summation of first 5 elements: " + sum);
}}
清单 3
// for-each循环中的迭代变量是"只读的",因为它与数组的下标相关,
//对迭代变量付值时,对数组下标是没有影响的.
class NoChange {
public static void main(String args[]) {
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for(int x : nums) {
System.out.print(x + " ");
x = x * 10; // 不会影响 nums
}
System.out.println();
for(int x : nums)
System.out.print(x + " ");
System.out.println();
}
}
程序的输出:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
清单 4
// 在多维数组上使用for-each
//在JAVA中,多维数组是数组的数组, 每次迭代时要取下一个数组而不是单个元素,
//如二维数组的情况,迭代变量是对一维数组的引用.
class ForEach3 {
public static void main(String args[]) {
int sum = 0;
int nums[][] = new int[3][5];
// 给 nums 赋值
for(int i = 0; i < 3; i++)
for(int j=0; j < 5; j++)
nums[i][j] = (i+1)*(j+1);
// 用 for-each 显示数组中的元素并求和
for(int x[] : nums) {
for(int y : x) {
System.out.println("Value is: " + y);
sum += y;
}
}
System.out.println("Summation: " + sum);
}
}
清单 5
// 用for-each循环搜索数组
class Search {
public static void main(String args[]) {
int nums[] = { 6, 8, 3, 7, 5, 6, 1, 4 };
int val = 5;
boolean found = false;
// 用 for-each 在数组中搜索一个值
for(int x : nums) {
if(x == val) {
found = true;
break;
}
}
if(found)
System.out.println("Value found!");
}
}
清单 6
// 在collection集合的元素中进行for each循环
import java.util.*;
class AvgCollection {
static double getAvg(ArrayList nums) {
double sum = 0.0;
for(double itr : nums)
sum = sum + itr;
return sum / nums.size();
}
public static void main(String args[]) {
ArrayList list = new ArrayList();
list.add(10.14);
list.add(20.22);
list.add(30.78);
list.add(40.46);
double avg = getAvg(list);
System.out.println("List average is " + avg);
}
}
清单 7
// 在一个 Iterable 对象上使用for each循环.
import java.util.*;
// 这个类支持字符串中字符的迭代
class StrIterable implements Iterable,
Iterator {
private String str;
private int count = 0;
StrIterable(String s) {
str = s;
}
public boolean hasNext() {
if(count < str.length()) return true;
return false;
}
public Character next() {
if(count == str.length())
throw new NoSuchElementException();
count++;
return str.charAt(count-1);
}
public void remove() {
throw new UnsupportedOperationException();
}
// 这个方法实现Iterable.
public Iterator iterator() {
return this;
}
}
class ForEachIterable {
public static void main(String args[]) {
StrIterable x = new StrIterable("This is a test.");
// 显示每一个字符
for(char ch : x)
System.out.print(ch);
System.out.println();
}
}
运行结果:
C:\java>java ForEachIterable
This is a test.
分享到:
相关推荐
本篇将详细介绍如何使用MATLAB中的`for-each`循环将多重循环转换为单重循环,以提升程序性能。 `for-each`循环,也称为“foreach”或“遍历”循环,是MATLAB中处理数组、向量或细胞数组的一种高效方式。它允许我们...
Java的for-each循环,也称为增强for循环,是自Java 5引入的一项特性,它极大地简化了集合和数组的遍历操作。在传统的for循环中,我们需要手动管理索引,而在迭代器模式中,我们需要调用`hasNext()`和`next()`方法。...
下面是用一个传统的for循环遍历集合的例子:用传统的for循环遍历数组的做法如下:这些做法逗比while循环更好,但是它们并不完美。如果真的那么不幸,并且外部集
在Java编程语言中,`for-each`循环和迭代器是两种主要的遍历集合(如数组和集合)的方式。本文将深入探讨这两种方法,并强调它们的用途、优点以及潜在的陷阱。 首先,我们来看一下迭代器(Iterator)。迭代器是Java...
在VB(Visual Basic)编程语言中,`For Each`循环是一种非常重要的控制结构,它用于遍历集合或数组中的每一个元素。在这个实例中,我们将深入理解`For Each`循环的工作原理,以及如何在实际编程中有效地使用它。 `...
在Java编程语言中,"斗地主发牌"是一个典型的示例,用于教授和实践基本的面向对象编程概念,如构造函数、对象数组以及for-each循环。斗地主是一种广受欢迎的扑克游戏,通常涉及三名玩家和一副54张牌的牌组。在这个...
For-Each循环(也称为增强For循环)是Java 5引入的新特性,主要用于遍历集合或数组中的每个元素。其语法为: ```java for (类型 变量 : 集合/数组) { // 循环体 } ``` 假设`Demo4.java`演示了使用For-Each...
22 For-Each 23 PlotPub 24 Sheffield大学最新遗传算法工具箱 25 Camera Calibration 像机标定工具箱 26 Qhull(二维三维三角分解、泰森图)凸包工具箱 2019版 27 jplv7 28 MatlabFns 29 张量工具箱Tensor Toolbox 30 ...
总的来说,Java的for-each循环提供了更直观、更安全的方式来遍历数组和集合,减少了代码量,提高了可读性,并降低了潜在的编程错误。这是一个非常实用的特性,自JDK 5以来就被广泛使用,并且在后续的JDK版本中得到了...
这里我们将详细探讨几个重要的特性:For-Each循环、自动装包/拆包、可变参数以及注解。 1. **For-Each循环**: - For-Each循环,又称为增强型for循环,是从Java 5开始引入的。它的主要目的是简化对数组和集合的...
除了基本形式,Java还支持更复杂的For循环结构,如For-Each循环(也称为增强For循环),它简化了遍历数组或集合的操作。For-Each循环的语法如下: ```java for (数据类型 变量 : 集合或数组) { // 循环体 } ``` ...
Java 5引入了一种更简洁的循环方式,被称为for-each循环或增强型for循环,它主要用于遍历数组或集合。基本语法如下: ```java for (类型 变量 : 集合或数组) { // 循环体代码 } ``` 例如,遍历一个整数数组: ```...
Java提供了多种遍历数组的方法,包括使用传统的for循环、增强型for循环(for-each循环)、`Arrays`类中的方法以及转换数组到集合后的操作等。下面将详细介绍这些方法及其应用场景。 #### 1. 通过索引遍历数组 这是...
以下将详细讲解标题和描述中提到的几个关键特性:反射、枚举以及for-each循环。 首先,我们来看反射(Reflection)。反射是Java提供的一种能够在运行时检查类、接口、字段和方法的能力。通过反射,我们可以动态地...
Java的for-each循环是一种简化版的for循环,使得遍历数组或集合变得更加简洁。在for-each循环中,不需要显式地初始化、比较和更新迭代变量,只需指定迭代的目标集合即可。这种语法极大地提高了代码的清晰度,减少了...
相比JavaScript的原生`Array.prototype.forEach()`和`for...in`循环,`seebigs-each` 提供了更全面的错误处理和更好的跨环境一致性。对于大型项目或需要稳定性的场景,使用`seebigs-each` 可能更为合适。 ### 总结 ...
在这个例子中,虽然在for-each循环内部增加了元素的值,但因为for-each循环使用的是元素的副本,所以原始数组并未改变。 二维数组是数组的数组,它可以表示矩阵或其他多维结构。声明和初始化二维数组的方式与一维...
如果你想遍历自定义数据结构,可以通过实现`Iterable`接口和`Iterator`接口来支持for-each循环。例如: ```java public class MyCollection implements Iterable<Integer> { private List<Integer> numbers = ...
for_each 返回值详解 在 C++ STL 中,for_each 算法是一种非常有用的算法,它可以对容器中的每个元素应用一个函数对象(仿函数)。在本文中,我们将详细介绍 for_each 返回值的使用方法和实现原理。 for_each 算法...
For-Each 循环(也称为增强型 for 循环)简化了对集合的遍历过程。在引入 For-Each 循环之前,遍历集合通常需要使用迭代器,并且可能需要显式地进行类型转换。使用 For-Each 循环后,可以更简洁地遍历集合中的每个...