前言
在 Java 5 中提供了变长参数,允许在调用方法时传入不定长度的参数,本质上还是基于数组的实现
一、定义方法
在定义方法时,在最后一个形参后加上三点 …,就表示该形参可以接受多个参数值,多个参数值被当成数组传入。
可变参数格式:
数据类型 . . . 参数名称
可变参数作用:
可以不传,可以传一个或多个,也可以传一个数组
二、演示
public static void sum(int...nums) {
System.out.println("元素个数:" + nums.length);
System.out.println("元素内容" + Arrays.toString(nums));
}
public static void main(String[] args) {
sum(); //不传参数
sum(1); //传一个参数
sum(1,2,3); //传多个参数
sum(new int[]{1, 2, 3, 4}); //传一个数组
}
输出结果:
三、注意事项
一个形参列表中可变参数只能有一个
可变参数必须放在形参列表的最后面
四、可变参数API使用
ArrayList工具类有一个静态方法:
public static List asList(T…a){},对返回集合不能进行增删,可以修改
List接口有一个静态方法:
public static List of(E…elements){},返回集合不能增删改。
Set 接口有一个静态方法:
public static set of(){},不能有重复元素,不能增删,没有修改
注意事项:
List.of()和Set.of()在Jdk9 以后版本可以使用。
总结
什么时候使用可变参数?
在不确定方法需要处理的对象的数量时可以使用可变长参数,会使得方法调用更简单。