一.泛型
Java泛型是jdk1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(typeparameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
输出集合中所以的字符串
改进:在源头上对数据进行约束,除了字符串,其它类型数据不能放入集合
1.泛型类
类的后面定义一个或多个任意类型 ,可以在类的成员属性或方法中使用,
例如:
常见应用:List,Set,Map接口
2. 泛型接口:
定义一个泛型接口:
通过类去实现这个泛型接口的时候指定泛型T的具体类型
指定具体类型为Integer:
指定具体类型为String:
指定具体类型为一个自定义的对象:
常见应用:比较器Comparable
3.泛型方法
在方法结构上声明一个或多个泛型,可用于方法的返回值或形参。
4.泛型通配符
<? extends 类型> 表示某个类型或它的任意子类型
<? super 类型> 表示某个类型或它的任意父类型
二.集合工具类
Collections工具类:是一个主要对List集合进行操作的工具类,里面包含静态方法。
void reverse(List list):反转指定List集合中的元素顺序;
void shuffle(List list):打乱集合元素原有的顺序;
void sort(List list):根据元素的自然顺序对集合进行升序排序;
void sort(List list,Comparator c):根据Comparator产生的顺序对List集合元素进行排序;
void swap(List list,int i,int j):将指定集合中i处元素和j元素进行交换;
void rotate(List list,int distabce):当distabce为正数时,将distabce之后的元素移到集合前面,当为负数时,将distabce之前的元素移到集合后面。
三.TreeMap和TreeSet
1.Set和Map的关系:
set使用了map的key.
2.继承关系:
Set接口有一个实现类是HashSet,还有一个子接口是SortedSet,该接口有一个实现类是TreeSet。
TreeSet是一个有序集合,会根据自然排序排列或比较器进行排序,且没有重复元素,也没有下标。通过TreeMap实现。
TreeMap中的元素默认按照keys的自然排序排列或比较器进行排序。
构造方法