黑马程序员技术交流社区

标题: TreeSet实现排序有几种排序方式?和几种排序方式的区别? [打印本页]

作者: gczsjj    时间: 2017-2-7 23:26
标题: TreeSet实现排序有几种排序方式?和几种排序方式的区别?
a、自然排序       
实现Comparable<>接口,在实现接口的同时确定泛型,告诉排序要比较的是什么数据类型。重写comparaTo(Object obj)方法.               
        调用者就是将要添加到集合中的元素,传入者是集合内部的元素.       
b、比较排序       
        实现Comparator<>接口, 在实现接口的同时确定泛型,告诉排序要比较的是什么数据类型。作为参数传递给TreeSet集合.重写的是compare(参数1,参数2),        参数1是将要添加的元素,参数2是集合中已经存在元素。               
区别:               
自然排序是元素本身有了比较的功能。               
比较器排序是让TreeSet集合具有比较的功能。               
如果有自然排序和比较器排序,会优先去执行比较器排序,不再会执行自然排序。
       
自然排序和比较排序的作用和功能是一样,为什么要有两种排序?
因为:比较排序可以给实现特殊的排序,如TreeSet<Person>对name的长度进行排序。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2