Java-Java5对数组的新语法支持

Java5对数组的新语法支持:

1):增强for循环-foreach

2):方法的可变参数

增强for循环-foreach:

需求:定义一个数组,使用循环迭代出数组中的每一个元素.

使用for循环的操作如下:

int[] nums = new int[]{10,20,30,40,50};
//使用循环迭代出数组的每一个元素
for(int index = 0;index < nums.length;index ++){
       System.out.println(nums[index]);
}

其实,我们在使用循环迭代数组的时候,往往是不关心迭代变量(数组的索引),有没有更好的方式,迭代数组元素的时候,就只操作数组元素,不去操作数组的索

引.

从Java5开始(JDK1.5)开始,Java提供了一种新的语法:增强for循环(foreach).

语法:

for(数组元素类型 变量 : 数组名)

{

循环体

}

-----------------------------------------------------------

通过反编译工具查看字节码,发现foreach其实在底层依然是使用for循环+索引来操作数组的.

我们把增强for循环,称之为编译器的新特性---->语法糖.

语法糖的最大甜头就是:让开发者写更少,更简单的代码,完成相同的功能.

-----------------------------------------------------------

for循环功能比foreach更彪悍.

------------------------------------------------------------

如果迭代数组元素,而不关心数组的索引的时候,首选使用foreach.

-----------------------------------

foreach还未结束--->集合框架.

方法的可变参数:

需求:编写一个方法,统计使用数组传递过来的总和.

public static void main(String[] args){
     double[] ps = new double[]{10.0,20.0,30.0,40.0,50.0};
     double sum = getSum(ps);
     System.out.println(sum);
}
//计算商品总和
static double getSum(double[] arr){
     double price = 0.0;
     for(double price : arr){
         sum += price;
     }
     return sum;
}

但是心里不爽:

1):为了求多个数之和,我还得先创建一个数组来存储数据.

2):如果多个数是变化的,比如求3个数之和,变成求5个数之和.......,还得去修改我的数组,但是数组是定长的.

说人话:我期望调用求和的方法是这样调用的.

double sum = getSum(10.0,20,30.0,40,50.0,60,70);

要解决该问题,必须使用Java5的另一个新特性,方法的可变参数,说的是参数的个数可变.

static double getSum (double ... arr);

--------------------------------------------------------------------------------------------

方法的可变参数,其实也是一个语法糖,编译器级别的新特性,让开发者写代码更简单.

方法的可变参数其底层是就是一个数组类型.

可变参数必须作为方法的最后一个参数,避免参数的歧义性.

推论:方法最大只有一个可变参数.

版权声明:
作者:yfeer
链接:https://yfeer.com/541.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>