可变参数

可变参数介绍

可变参数:
可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了;
格式 : 修饰符 返回值类型 方法名(数据类型...变量名){ }
范例 : 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);
    }
}
posted @ 2022-05-11 21:06  HFUUwzy  阅读(109)  评论(0编辑  收藏  举报