Java集合中的可变参数

可变参数:
1.在JDK1.5之后,如果我们定义一个方法需要接收多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:
修饰符 返回值类型 方法名(参数类型... 形参名){}
其实这个书写完全等价于
修饰符 返回值类型 方法名(参数类型[] 形参名){}
只是后面这种定义,在调用时必须传递数组,而前者可以直接传递参数即可。
 
2.使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数。
 
3.可变参数的原理:可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数
传递参数个数,可以时0个(不传递)、1、2、。。。多个。
 
4.JDK1.5之后,出现了简化操作。...用在参数上,称之为可变参数
 
同样是代表数组,但是在调用这个带有可变参数的方法时,不用创建数组(这就是简单之处),直接将数组种的元素作为
实际参数进行传递,其实编译成的 .class文件,将这些元素先封装到一个数组种,再进行传递。这些动作都在编译
.class文件时,自动完成了。
 
5.代码举例:
1 public static int add(int... num){
2     int result=0;
3     System.out.println(num); //0个参数时 [I@75412c2f,参数个数不同,此哈希值也不一样,参数个数于参数实际内容一样此哈希值也不一样。
4     for(int i:num){
5         result+=i;
6     }
7     return result;
8 }

 

定义一个计算 0~n个整数的和的方法。
已知:计算整数的和,数据类型已经确定 ,int
但是参数的个数不确定,不知道要计算多少个整数的和,就可以使用可变参数
add(); 就会创建一个长度为0的数组,储存传递过来的参数 new int[0];
add(10); 就会创建一个长度为1的数组,储存传递过来的参数 new int[]{10};
add(10,20);就会创建一个长度为2的数组,储存传递过来的参数 new int[]{10,20};
...
 
6.可变参数的注意事项:
①.一个方法的参数列表,只能有一个可变参数
②.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾。
 
7.可变参数的特殊(终极)写法:
修饰符 返回值类型 方法名(Object... obj){}

posted @ 2021-07-17 23:04  水啾2  阅读(191)  评论(0编辑  收藏  举报