当前位置: 首页 > news >正文

Java基础系列-一文搞懂自定义排序

java自定义排序

自定义排序的理解:

我们首先看需求:一个二维数组

[[1,3],[8,10],[15,18],[2,6]]

我们的需求是根据集合(二维数组取出来的数据)

左边小的左边这种方式排序

例如1<8 排序方式就是[1,3],[8,10]

此时我们就需要自定义排序

intervals={{1,3},{8,10},{15,18},{2,6}};Arrays.sort(intervals,new Comparator<int[]>(){public int compare(int[]s1,int []s2){return s1[0]-s2[0];}})

这段代码这样理解 comparator是比较器 是一个接口

我们使用匿名内部类方法 new 一个比较器 这时候必须实现里面的方法 compare方法返回值是Int

我们需要比较的对象是数组 根据数组左边的元素大小来排序

这时候参数就是int[]s1,int[]s2

实现compare方法

如果s1比s2大 返回就是1 那么 s1就排在后面

我们需要记住备操作的永远是第一个传参进来的数

例如我们在compare里面写

public int compare(int[]s1,int []s2){return s2[0]-s1[0];}

此时如果s1大于s2返回值是 负一 那么s1就会排在前面

这一点理解非常重要

如果不熟悉匿名内部类的同学

也可以自定义类实现Comparator接口的compare方法

然后传参给Arrays.sort的第二个参数

例如

class mycomparator implements Comparator<int[]>
{
public int compare()
{
定义你要实现比较的方法;
}}Arrays.sort(需要排序的数据,new mycomparator());
//就可以啦

还有一点就是多重数组可能给大家搞混 永远记住

[][] [][]这类【】【】的从外到内的数字 也是数组从外到内的过程。

例如

arr[1][0];//二位数组里面第二个数组的第一个数字
http://www.lryc.cn/news/463742.html

相关文章:

  • 扫普通链接二维码打开小程序
  • 计算机储存与分区
  • OpenCV之换脸技术:一场面部识别的奇妙之旅
  • Linux学习笔记9 文件系统的基础
  • Android OpenGL粒子特效
  • 5 -《本地部署开源大模型》在Ubuntu 22.04系统下ChatGLM3-6B高效微调实战
  • dpkg:错误:另外一个进程已经为dpkg前端锁加锁
  • 基于SSM服装定制系统的设计
  • RK3588开发笔记-usb3.0 xhci-hcd控制器挂死问题解决
  • 深入解析TCP/IP协议:网络通信的基石
  • 基于微信小程序的汽车预约维修系统(lw+演示+源码+运行)
  • wifi、热点密码破解 - python
  • bean的实例化2024年10月17日
  • 告别ELK,APO提供基于ClickHouse开箱即用的高效日志方案——APO 0.6.0发布
  • Excel使用技巧:定位Ctrl+G +公式+原位填充 Ctrl+Enter快速填充数据(处理合并单元格)
  • JAVA学习-练习试用Java实现“成绩归类”
  • 【Hive】7-拉链表的设计与实现
  • Maxwell 底层原理 详解
  • 使用短效IP池的优势是什么?
  • zynq烧写程序到flash后不运行
  • JMeter如何设置HTTP代理服务器?
  • React面试题笔记(一)
  • 3.Java入门笔记--基础语法
  • 关于SOCKS协议的常见误区有哪些?
  • 无极低码课程【redis windows下服务注册密码修改】
  • 多ip访问多网站
  • Pytest参数详解 — 基于命令行模式!
  • 指针——函数指针数组
  • MySQL中的增查操作:探索数据的奥秘,开启数据之门
  • oracle_查询建表语句