问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中for each的用法

发布网友 发布时间:2022-04-24 04:40

我来回答

3个回答

热心网友 时间:2022-04-18 02:39

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: leimin
* 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: leimin
* 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

Process finished with exit code 0
三、总结
foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。相对老的for语句来说是个很好的补充。提倡能用foreach的地方就不要再用for了。在用到对集合或者数组索引的情况下,foreach显得力不从心,这个时候是用for语句的时候了。foreach一般结合泛型使用

参考资料:http://apps.hi.baidu.com/share/detail/15655217

热心网友 时间:2022-04-18 03:57

很多软件都能用,和for循环语句差不多
for each主要在Java中用到,是jdk5.0新增加的一个循环结构,可以用来以此处理数组中的每个元素(其他类型的元素集合也可以)而不用为指定下标而分心。

热心网友 时间:2022-04-18 05:32

二楼代码很全,可以参考
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
白色T 恤如何搭配才能穿出优雅的韵味? 白色T 恤衫怎样搭配才能显得时髦又好看? 白色紧身正肩T 恤想要穿出休闲感,该如何搭配? 手机怎么连接笔记本电脑的wifi上网 电热水器为什么用着用着就没压力了 用什么拖地最干净又耐脏 爱奇艺会员的等级是怎么划分的? 爱奇艺星钻会员怎么开通 怎样才是正确的接吻呢 网页上鼠标点住右键拖动后出的蓝色线条是什么?干什么用的?为什么一松开... 求高手指点java中迭代器iterator和foreach的不同之处 java 8里面 functional operations 与 foreach 循环的区别是什么? java foreach有什么用 java中while, do…while, for, ‘foreach’几种循环的特点? java中foreach循环和for循环比较测试 在Java中使用for、foreach和Iterator遍历集合哪个更好一点 java中for和foreach速度到底谁更优,速度是和JDK版本有关吗 java中的foreach语句和for语句的区别及各在什么情况下使用 java为什么 foreach比for效率高 Java的for和foreach不一样吗??? java foreach和for的区别 java中for和foreach的区别 java中for与foreach的区别? 脚小拇指有死皮穿鞋很痛,好像是鸡眼,硬硬的,穿鞋子会挤的痛,擦点什么药能去掉那一块死皮 以前因为穿鞋不当把脚小拇指外侧磨出来一个泡,现在穿鞋走路就疼,有没有去除的办法啊? 为什么左脚小指穿鞋老是磨得痛,而右脚 为什么穿鞋右脚小拇指顶破皮鞋 脚掌宽,穿鞋时小拇指无名指疼的要命怎么办 我的脚小拇指和旁边的脚趾是弯曲穿鞋老是顶起来两块 有没有办法矫正过来 穿鞋可以好看 我的脚小拇指穿鞋磨的,前几天是在小拇指的前面磨了个泡,我用针把戳破之后,它又长到了小拇指的背面,而 没有主见的女人的性格是什么? 没有主见的女人,会怎么样? 女友没有主见。怎么办? 女朋友没有主见怎么办? 泰国椰子什么时候上市 没主见的女人怎么办? 有些女生恋爱的时候很没有主见,这样真的好吗? 女友太过没有主见。怎么办? 女朋友没有主见,我该怎么办? 玩抖音拍的照片怎么珊掉? 泰国黄金椰子树寿命和结果时间 没有主见的女生会这样么?什么思想造成的? 泰国椰青底部发蓝是怎么回事 女朋友没有主见咋办 抖音里面照片怎么删掉? 椰子在泰国菜中的作用? 女人有主见好还是没有好 为什么泰国椰子比海南椰子甜? 女生没有主见是不是不好 泰国最好吃的椰子叫什么来着? 介绍下?