java小知识点:比较器

java中自主排序主要根据一个Comparator类来实现。

他内部实现用的是Timsort策略。大概思想是说将整个集合分成几个小段,每个小段分别排序,然后再拼在一起。

主要用法是传入两个数(也可以不是Integer或int类型,这里只是把他们都统称为数),然后根据返回值来判断这两个数哪个在前那个在后。比如a大于b的时候返回一个负数,那么a在b的前面,如果返回正数,那么a在b后面。

此外有的类还实现了Comparable接口。这些类需要重写compareTo方法来定义他的排列顺序。这样这个类就可以被Collections.sort直接排序,而不需要再人为写一次排序器。当然,如果又自己写了一个比较器的话(Comparator),自己写的比较器优先级更高

关于compare接口的实现和Comparator类的区别,以下是gpt的一个总结

Comparartor在使用时,一般是以下的语法,这样来实现一个内部匿名类

java 复制代码
Collections.sort(lsit, new Comparator(){
    @Override
    public int compare(){
        ****
        return *
    }    
})

或者也可以用lambda表达式或Comparator的内部实现

相关推荐
ywl4708120874 分钟前
jwt生产token,简单版helloworld
java·数据库·spring
未若君雅裁9 分钟前
生产问题排查与性能瓶颈定位:日志、监控、链路追踪、压测与Arthas
java·web安全
器灵科技16 分钟前
AI视频工具实测:Seedance/可灵/HappyHorse谁最能打?
java·运维·数据库·人工智能·github
南部余额28 分钟前
RabbitMQ 进阶:延迟队列完全指南
java·分布式·spring·rabbitmq
phltxy30 分钟前
Spring AI Agents 智能体模式实战
java·人工智能·spring
码云骑士38 分钟前
13-列表append的底层真相(上)-listobject源码中的预分配策略
开发语言·python
摇滚侠40 分钟前
MyBatis 入门到项目实战 特殊 SQL 的执行 34-37
java·sql·mybatis
phltxy1 小时前
Spring AI 可观测性与 Zipkin 实战
java·人工智能·spring
兰令水1 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode
.道阻且长.1 小时前
C++ string 操作指南:接口解析
java·c语言·开发语言·c++