1,Set集合的功能和Collection一致,(1)HashSet;(2)TreeSet;
2,HashSet底层数据结构哈希表,线程是非同步的;保证元素唯一性:如果元素的HashCode值相同,判断equals是否为true;
如果HashCode值不同,不用调用equals;
3,TreeSet底层数据结构是二叉树,可以对Set集合中的元素进行自然排序(当主要条件相同时,要判断次要条件),保证元素的唯一性的依据(compareTo方法 return 0);
4,TreeSet排序方式:(1)让元素自身具备比较性,元素需要实现Comparable接口,覆盖comparaTo方法(自然排序);
(2)当元素自身不具备比较性,或者具备比较性不是需要的,就定义一个比较器,将比较器对象作为参数传递给TreeSet集合,(定义一个类,实现Comparator接口,覆盖compare方法);
5,泛型:JDK1.5后,用于解决安全问题;
6,泛型好处:(1)将运行时期出现问题ClassCaseException转移到编译时期,方便程序员解决(2)避免了强制转换;
7,格式:通过< >来定义要操作的引用数据类型;使用时机:当类中要操作的引用数据类型不确定的时候;
8,泛型类定义的泛型,在整个类中有效,如果被方法使用,那泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了;
9,静态方法不可以访问类上定义的泛型,如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上,需要放在返回值类型前面,修饰词后面;
10,泛型限定:?,通配符,占位符;(1)? extends E:可以接收E类型或者E的子类型,上限;(2)?super E:可以接收E类型或者E的父类型,下限;