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的内部实现

相关推荐
带刺的坐椅2 小时前
Solon AI Skills 会是 Agent 的未来吗?
java·agent·langchain4j·solon-ai
jacGJ2 小时前
记录学习--文件读写
java·前端·学习
哈哈不让取名字3 小时前
基于C++的爬虫框架
开发语言·c++·算法
花间相见3 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su3 小时前
Java---Properties 类
java·开发语言
cypking3 小时前
四、CRUD操作指南
java
2301_780669864 小时前
文件字节流输出、文件复制、关闭流的方法
java
一条咸鱼_SaltyFish4 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
我即将远走丶或许也能高飞4 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
沐知全栈开发5 小时前
SQL LEN() 函数详解
开发语言