62、foreach与可变参数(108)

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、在参数列表里有多个参数时,可变参数只能是最后一个,理由同上。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值