欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Java基础系列-一文搞懂自定义排序

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

2025/9/21 22:59:08 来源:https://blog.csdn.net/qq_53539629/article/details/143080862  浏览:    关键词: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];//二位数组里面第二个数组的第一个数字

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词