(1)今天学习了LinkedHashSet,TreeSet集合,Comparable,Comparator
(2)明天学习泛型
(3) 1 LinkedHashSet特点 元素的存储和取出顺序一致,没有重复的元素
2 TreeSet特点 1 元素有序,不是指存储和取出的顺序,而是指按照一定的规则进行排序,具体排序方式取决于构造方法
TreeSet() 根据其元素的自然排序进行排序
TreeSet(Comparator comparator) 根据指定的比较器进行排序
2 没有带索引的方法,不能使用普通for循环遍历
3 Comparable 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序
自然排序就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法
如果该方法return的数大于0,则该元素往后排,小于0往前排,等于0认为相同,不被加入集合
重写方法时,注意排序规则要按照主要规则和次要规则来写
4 Comparator 用TreeSet集合存储自定义对象,带参构造方法使用比较器排序
比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法
重写方法时,注意排序规则要按照主要规则和次要规则来写
TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>(){
public int compare(Student s1,Student s2){
int num=s1.getAge()-s2.getAge();
int num2=num==0?s1.getName().compare(s2.getName()):name;
return num2;
}
});