集合
HashSet集合(实现类)
- 实现Set接口。
- 底层数据结构是哈希表。
- 没有带索引的方法,普通for循环不能遍历。
- 没有重复元素。
补:HashSet集合存储(学生)对象不重复:在(学生)类中重写HashCode() 和equale() 方法,自动生成重写即可。
LinkedHashSet集合(实现类):
- 哈希表和链表实现的Set接口。
- 链表保证元素有序,即存储和取出顺序一致。
- 哈希表保证没有重复元素。
TreeSet集合:
- 元素有序,按照一定规则排序,具体排序方法取决于构造方法。
- TreeSet():根据元素的自然顺序排序。
- TreeSet(Comparator comparator): 根据指定的比较器排序
- 没有带索引的方法,普通for循环不能遍历。
- 没有重复元素。
使用元素的自然顺序排序。
-
创建对象TreeSet<>()使用无参构造。
-
类要实现Comparable接口
-
在类中重写方法compareTo方法。
使用比较器排序
- 创建对象TreeSet< >( new )有参构造。
- 在测试类中写内部类compare。
TreeSet<Student>() ts = new TreeSet< Student>( new Comparator<Student>(){
public int compare(Student s1,Student s2){
//比较器规则
return (int);
}
});
**
泛型
- 本质是参数化类型,所操作的数据类型被指定为一个参数
- 参数化类型:将类型由原来的具体类参数化,然后在使用/调用的时候传入具体参数类型。
- 可以用在类、方法和接口中,被称为泛型类、泛型方法和泛型接口。
格式
- <类型>:指一种类型的格式,这个类型可以看作参数(形参)。
- <类型1,类型2…>:指多类型,用逗号隔开,这里类型可以看作参数(形参)。
- 具体调用时给定的类型可看成实参,实参只能是引用类型。
优点:
- 避免类型强转。
- 把运行时期问题提前到了编译时期。