for each 的用法

for each 的用法foreach 的语句格式 for 元素类型 t nbsp nbsp 元素变量 x nbsp nbsp 遍历对象 obj nbsp nbsp nbsp nbsp 引用了 x 的 java 语句 nbsp Java 中新增的 foreach 的用法 JDK1 5 加入的增强 for 和循环 foreach 语句使用总结增强 for part1 part2 part3 nbsp part2 中是一个数组对象 或者是带有泛性的集合 nbsp part1 定义了一个局部变量 这个局部变量的类型与 p

for each 的语句格式:

for(元素类型t    元素变量x :    遍历对象obj){
     引用了x的java语句;
}
 

Java 中新增的 for each 的用法

JDK1.5加入的增强for和循环.

 
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; 

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

list = 
new ArrayList

(); 

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—-排序前的一维数组 



—-1—-排序后的一维数组 



—-2—-froeach语句输出集合元素 



—-2—-froeach语句输出集合转换而来的数组元素 



—-4—-foreach输出三维数组测试 









Process finished with exit code 0

























 
二、foreach语句的局限性
 
通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,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); 


}





















运行结果:
 
—-未赋值前输出刚刚定义的数组—- 




—-通过循环变量给数组元素赋值—- 
—-赋值后,foreach输出创建好的数组—- 





Process finished with exit code 0











 
三、总结
 

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

最后我们看看代码实现吧

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206513.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:32
下一篇 2026年3月19日 下午3:32


相关推荐

  • mysql数据库同步工具_mysql同步工具_mysql数据库同步

    mysql数据库同步工具_mysql同步工具_mysql数据库同步 下载网站:www.SyncNavigator.CN  客服QQ1793040———————————————————-  关于HKROnlineSyncNavigator注册机价格的问题HKROnlineSyncNavigator 8.4.1企业版数据同步软件自2009年第一个版…

    2022年6月28日
    32
  • 白话经典算法系列之六 高速排序 高速搞定

    白话经典算法系列之六 高速排序 高速搞定

    2021年9月4日
    43
  • scikit-learn : LARS[通俗易懂]

    scikit-learn : LARS[通俗易懂]LARS正则化斯坦福大学的BradleyEfron,TrevorHastie,IainJohnstone和RobertTibshirani发现了LARS(LeastAngleRegression,最小角回归)它借用了威廉·吉尔伯特·斯特朗(WilliamGilbertStrang)介绍过的高斯消元法(Gaussianelimination)的灵感。背景LARS是一种回归手段,适

    2022年6月24日
    33
  • kali如何安装蚁剑

    kali如何安装蚁剑文章目录 1 已有蚁剑源码安装 2 没有蚁剑源码安装 3 蚁剑源码下载 1 已有蚁剑源码安装从 v2 0 0 beta 版本开始 用户 开发者只需要下载对应平台的加载器 无需安装额外的环境 即可对源代码进行编辑 执行 调试等操作 可直接运行当前最新的开发版和发行版源代码 如果已经有蚁剑源码了 就只需要下载加载器即可使用蚁剑了新建一个文件夹 文件夹中不能包含中文在我们新创建的 antsword 目录下下载加载器加载器下载地址 https github com AntSwordProj AntS

    2026年3月16日
    2
  • 解决:信息中插入avi格式的视频时,提示“unsupported video format”

    解决:信息中插入avi格式的视频时,提示“unsupported video format”

    2022年1月24日
    64
  • oracle数据库心得体会_oracle基础知识入门

    oracle数据库心得体会_oracle基础知识入门Oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。  一、定位  oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,

    2022年8月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号