- 可变参数(又称 个数可变),用作方法的形参出现,那么方法参数个数就是可变的了。
- 书写个数:
- 格式:修饰符 返回值类型 方法名(数据类型... 量名){}
- 范例:pubic static int sum(int... a){}
- 可变参数 注意事项:
- 这里的 可变参数变量 其实是一个数组
- 如果一个方法 有多个参数,包含可变参数,可变参数要放在最后
示例代码:
package com.collection.Demo06;
/**
* 可变参数
*/
public class Test04 {
public static void main(String[] args) {
int sum1 = sum(1);
System.out.println("sum:" + sum1);//sum:1
int sum2 = sum(2, 2);// arr[0]=1 arr[1]=1
System.out.println("sum:" + sum2);//sum:2
int sum3 = sum(3, 3, 3);
System.out.println("sum:" + sum3);//sum:9
}
/**
* int... a 可变参数 底层基于 数组实现
* 传递的可变列表——可变 底层封装成 数组的形式传递给我们的的方法
*/
public static int sum(int... a) {
// public static int sum(int... a,int c) { //错
// public static int sum(int c, int... a) {//如果一个方法 有多个参数,包含可变参数,可变参数要放在最后
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i];
// System.out.println(a[i]);
}
// System.out.println("================");
return sum;
}
// public static int sum(int a, int b) {
// return a + b;
// }
//
// public static int sum(int a, int b, int c) {
// return a + b + c;
// }
//
// public static int sum(int a, int b, int c, int d) {
// return a + b + c + d;
// }
}
可变参数的使用
package com.collection.Demo06;
import java.util.Arrays;
import java.util.List;
public class Test05 {
public static void main(String[] args) {
/**
* 使用Arrays.asList定义好的 元素个数 是不能够发生变化的(可以修改)
*/
List<String> strings = Arrays.asList("mayikt", "meite", "xiaojun");
System.out.println(strings);//[mayikt, meite, xiaojun]
//如果使用Arrays.asList() 创建的 集合 不能添加和删除
// strings.add("666");//运行报错,UnsupportedOperationException
// strings.remove(0);//运行报错,UnsupportedOperationException
strings.set(0, "Hello");
System.out.println(strings);//[Hello, meite, xiaojun]
}
/**
* @SafeVarargs
* @SuppressWarnings("varargs")
* public static <T> List<T> asList(T... a) {
* return new ArrayList<>(a);
* }
* asList 传入的参数,可变参数,泛型 T
*/
}
下一篇文章:泛型擦除机制