1.泛型集合:
I. 概念:参数化类型、类型安全的集合,强制集合元素的类型必须一致。
II. 特点:
1). 编译时即可检查,而非运行时抛出异常。
2). 访问时,不必类型转换(拆箱)。
3). 不同泛型之间引用不能相互赋值,泛型不存在多态。
List<Dog> list1 = new ArrayList<Dog>();
abstract class Myclass<E>{
abstract public void m1(E e);
}
2.泛型:高级类别的知识:
I. 概念:约束-规范类型
II. 泛型的场景:
1). 定义泛型:
A). 实例泛型:
a). 类:创建对象时,为类所定义的泛型,进行参数化赋值
b). 接口:实现接口时,为接口所定义的泛型,进行参数化赋值
B). 静态泛型:
a). 定义在方法的返回值类型前面:、、<T extends Comparable>、<T extends Comparable<? super T>> 可应用在形参列表、返回值两种场景上,不单单可以规范泛型,还可以语义化返回值。
b). 定义在方法的形参列表当中:<?>、<? extends Object>、<? super Integer>,不支持使用& 只能应用在形参列表上,规范泛型。 ?表示任意泛型
public static void m1(List<? extends Animal> list) {
//参数必须是Animal的子类
}
public static void m2(List<? super Dog> list) {
//参数必须是Dog的父类
}
public static<T extends Comparable<? super T>> void m3(List<T> t) {
//父类约束放最前面
}
class Animal implements Comparable<Animal>{
@Override
public int compareTo(Animal o) {
// TODO Auto-generated method stub
return 0;
}
}
3.Collections工具类:
概念:集合工具类,定义了除了存取以外的集合常用方法。
I. public static <T extends Comparable<? super T>> void sort(List list) //排序,要求:必须实现Comparable,必须可与自身类型比,以及父类类型比
II. public static void reverse(List<?> list) //反转、倒置元素
III. public static void shuffle(List<?> list) //随机重置顺序