泛型概述
格式:<类型>,这个类型可以看成形参传入进去
泛型类
格式::修饰符 class 类名<类型> { }
范例:public class Generic{ }
泛型方法
泛型接口
范例:public interface Generic{ }
类型通配符
类型通配符:<?>
List<?>: 表示元素类型未知的List ,它的元素可以匹配任何的类型
这种通配符的List仅表示它是各种泛型List的父类i,并不能把元素添加到其中
如果不希望List<?>是任何泛型List的父类,只希望它代表某一类泛型List的父类,可以使用类型通配符上限
类型通配符上限:<?extends 类型>
List<? extends Number>:它表示的类型是Number或者其子类
类型通配符下限:<? super 类型>
List<? super Number>:它表示的类型是Number或者其父类
可变参数
方法参数个数可变
格式:修饰符 返回值类型 方法名(数据类型 …变量名)
范例:public static int sum(int …a){}
//返回由指定数组支持的固定大小的列表
List<String> list = Arrays.asList("JYQ","WST","WYX");
//下面两个方法会修改集合大小,故会报错,而set不修改集合大小
// list.add("XKA");//UnsupportedOperationException不支持添加操作
// list.remove("JYQ");//UnsupportedOperationException不支持添加操作
list.set(1,"XQQ");//可以
System.out.println(list);
//放回包含任意数量元素的不可变列表
List<String> list2 = List.of("WST","JYQ","WYX");
//UnsupportedOperationException不支持添加操作
// list2.add("XKA");
// list2.remove("WST");
// list2.set(3,"JYQ");
System.out.println(list2);
//返回一个包含任意数量元素的不可变集合,当添加相同元素时,
// 抛出非法或不正确参数IllegalArgumentException
Set<String> set = Set.of("WST","JYQ","WYX");
// set.add("XKA");//UnsupportedOperationException不支持添加操作
// set.remove("WST");//UnsupportedOperationException不支持添加操作
// set.set(3,"JYQ");//Set集合没有set方法