https://blog.youkuaiyun.com/weixin_46521681/article/details/105423180
比较器使用总结:
1、传入比较器的(o1、o2)两个元素,如果返回负数那么o1放前面,如果返回正数那么o1放后面,返回零就不排序。如果直接return一个常数,这个常数要是大于或等于零,那么就不排序,如果这个常数小于零那么就逆序排列。 不管是复杂排序规则还是简单的排序规则这是一个铁律!!!
2、复杂的排序方式的时候(有多个排序条件,排序条件的优先级不一样),可以自己定义。
3、制定复杂排序规则的时候,思路要以目的为导向,由最后想要的目的结果来推导出复杂的排序规则。
@Test
public void testComparator(){
Integer[] arr={5,6,10,1,23,11};
Arrays.sort(arr,new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
//比较器排序规律
//1、返回负数就是o1排在前面,返回正数o2排在前面,返回0就不排序
//2、要是返回一个大于或者等于零的常数那么就不排序,返回一个小于零的常数那么就逆序。
return -1;
}
});
for(Integer a:arr){
System.out.println(a);
}