1、foreach循环
2、可变参数
1、foreach循环
JDK1.5也称为JAVASE5.0,这个版本中增加的新功能很多,在后面的课程中会一一为大家讲解。今天要讲的foreach是其中一个。
增强for循环
foreach语法 foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for每一个”的意思。实际上也就是这个意思。 (for的一种重载)
for(类型变量名称:数组或集合){
//输出操作
}
没有用i来作为递增变量(内部已经封装了实现细节)
普通for循环
for(inti=0;i<names.length;i++){
System.out.println("for循环的结果:"+names[i]);
}
foreach循环
for(String name:names){ //注意:这里的是一个随意的变量,换成吗m,n都行
System.out.println("foreach循环方式:"+name); //这里方法的参数是上面的随意变量,且要保持一致,不要把参数传成了字符串
}
优缺点:
foreach循环:代码简洁,但可能产生垃圾对象,因为会不断将数组names中的元素取出赋值给name对象,反复不断生成新的name对象
在未来应用中,比较吃内存的如Android应用就不建议使用,如EE中做电脑应用程序就没影响。总结来就是只适用于单纯只遍历(迭代)不考虑内存时。
for循环:可通过变量i来进行一系列输出设置
for(inti=1;i<names.length;i+=i){
System.out.println("for循环改变变量i的结果:"+names[i]);
}
2、可变参数
一个方法中定义好了参数,在调用时必须传入与其一一对应的参数,
但是在JDK1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。这就是可变参数。
可变参数语法:
返回值类型方法名称(数据类型…参数名称){
}
这里的…代表着同一类型的参数1~n个。可变就体现在同一类型参数的个数上
数组·也是一种类型,可作为参数传递
…连着数据类型写,后接空格形参最为标准。
String... names
…与数据类型间有空格也可。
String ... names
全部连一起也没错。
String...names
可变参数的参数就是一个数组!
public class VariableParameter_0 {
public static void main(String args[]){
用数组和可变参数作为参数类型时传参的不同点
String[] names = {"缪缪","玲玲","琪琪"};
//调用数组作为参数的方法。 封装成数组后传进
method1(names);
//调用可变参数作为参数的方法,可直接写1~n个参数进去。 相当散装
method2("缪缪","玲玲","琪琪");
//也可传数组进去
method2(names);
method3(21,names);
}
// 一个参数列表里有多个可变参数时出现受检异常
// public static void method3(int... num,String...names){
//
// }
//多个参数时,第二个参数作为可变参数
public static void method3(int age,String...names){
for(String name:names){
System.out.println("My wife is "+age+",name is "+name);
}
}
//参数为可变参数
public static void method2(String... names){
for(String name:names){
System.out.println(name+" ");
}
}
//数组作为参数类型
public static void method1(String[] names){
for(String name:names){
System.out.println(name+" ");
}
}
}
1、一个参数列表里只能有一个可变参数,因为可变参数可表示任意多个,如果有两个可变参数,则都会当成第一个可变参数的参数类型,后面的参数永远不会有。
public static void method3(int... num,String...names){
}
在编译期就会报受检期异常
2、在参数列表里有多个参数时,可变参数只能是最后一个,理由同上。