毕老师讲Java–TreeSet
Tree如何排序的两种方式
Set 元素是无序(存入与取出的顺序不相同)的,且元素不可以重复;
Set集合的功能和Collection功能是一致的;
HashSet 底层的数据结构是哈希表
TreeSet 底层的数据结构为二叉树
TreeSet的第一种方式:
implements Comparable
@override
compareTo()
让元素具有比较性,元素需要实现Comparable接口,重写compareTo()方法,这种方式称为元素的自然顺序,或默认顺序
TreeSet的第二种方式:
当元素本身不具有比较性,或者比较性不是所需要的时,这就需要让集合自身具有比较性;
在集合初始化时就有了比较方式;在构造函数内传入比较器:Comparator,将比较器对象作为参数传递给TreeSet的构造函数;
在此要复写compare()方法;
class MyCompare implements Comparator{
public int compare(Object o1,Object o2){
Student stu1 = (Student)o1;
Student stu2 = (Student)o2;
int num = stu1.getName().compareTo(stu2.getName);
if(num == 0){
return stu1.age-stu2.age;
}
return num;
}
}
注意:当两种排序方式都存在时,以比较器为主;