可变参数
可变参数介绍
可变参数:
可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了;
格式 : 修饰符 返回值类型 方法名(数据类型...变量名){ }
范例 : public static int getSum(int...a){ }
可变参数注意事项:
这里的变量其实是一个数组
就如果一个方法有多个参数,包含可变参数,可变参数要放在最后
示例
public class VariableP01 {
public static void main(String[] args) {
System.out.println(getSum(10,20));
System.out.println(getSum(10,20,30));
// System.out.println(Sum(10,10,30,40));
}
// public static int Sum(int b,int...a){
// return 0;
// }
public static int getSum(int...a){
// System.out.println(a);// [I@1b6d3586 [I@4554617c ,实际是个数组
// return 0;// 0 0
int sum = 0;
for(int i:a){
sum+=i;
}
return sum;
}
// public static int getSum(int a,int b){
// return a+b;
// }
//
// public static int getSum(int a,int b,int c){
// return a+b+c;
// }
}
可变参数的使用
可变参数的使用
JDK9有下列方法
Arrays工具类中有一个静态方法:
public static <T> List<T> asList(T...a):返回由指定数组支持的固定大小的列表
返回的集合不能做增删操作, 可以做修改操作
List接口有一个静态方法:
public static <E> List<E> of(E...Element):返回包含任意数量元素的不可变列表
返回的集合不能做增删改操作
Set接口有一个静态方法:
public static <E> Set<E> of(E...Element):返回一个包含任意数量元素的不可变集合
不能给出重复元素
返回的集合不能做增删操作, 没有修改的方法
示例
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class VariableP02 {
public static void main(String[] args) {
//public static <T> List<T> asList(T...a)
// List<String> list = Arrays.asList("hello","world","java");
// list.add("javaee");//UnsupportedOperationException抛出以表示不支持请求的操作。
// list.remove("hello");//UnsupportedOperationException
// list.set(1,"javaee");// [hello, javaee, java]
// System.out.println(list);
// public static <E> List<E> of(E...Element)
// List<String> list = List.of("hello", "world", "java");
// list.add("javaee");//UnsupportedOperationException
// list.remove("hello");//UnsupportedOperationException
// list.set(1,"javaee");////UnsupportedOperationException
// System.out.println(list);
//public static <E> Set<E> of(E...Element)
// Set<String> set = Set.of("hello", "world", "java","hello");//IllegalArgumentException
// IllegalArgumentException抛出表示一种方法已经通过了非法或不正确的参数。
// Set<String> set = Set.of("hello", "world", "java");
// set.add("javaee");//UnsupportedOperationException
// set.remove("hello");//UnsupportedOperationException
// System.out.println(set);
}
}