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);
--------------------------------------------------------------------------------------------
方法的可变参数,其实也是一个语法糖,编译器级别的新特性,让开发者写代码更简单.
方法的可变参数其底层是就是一个数组类型.
可变参数必须作为方法的最后一个参数,避免参数的歧义性.
推论:方法最大只有一个可变参数.
共有 0 条评论