Collection集合中对对象排序的方式有哪些?
1、TreeSet集合称为排序不重复集合,可以对元素进行默认的升序排序。 TreeSet集合自排序的方式: 1.字符串类型的元素会按照首字符的编号排序。 2.对于自定义的引用数据类型,TreeSet默认无法排序,执行的时候直接报错,因为人家不知道排序规则。 自定义的引用数据类型的排序实现:对于自定义的引用数据类型,TreeSet默认无法排序 所以我们需要定制排序的大小规则,程序员定义大小规则的方案有2种: a.直接为对象的类实现比较器规则接口Comparable,重写比较方法(拓展方式) // 如果程序员认为比较者大于被比较者 返回正数! // 如果程序员认为比较者小于被比较者 返回负数! // 如果程序员认为比较者等于被比较者 返回0! b.直接为集合设置比较器Comparator对象,重写比较方法 // 如果程序员认为比较者大于被比较者 返回正数! // 如果程序员认为比较者小于被比较者 返回负数! // 如果程序员认为比较者等于被比较者 返回0!
2、可以采用Collections的sort方法进行排序。
public static <T> void sort(List<T> list,Comparator<? super T> c):
将集合中元素按照指定规则排序,自带比较器
注意:如果类有比较规则,而这里有比较器,优先使用比较器。