关于Collections.sort 自定义比较器的说明

自定义比较器

排序算法的应用极其广泛,java的集合类中也提供了排序接口,我们可以直接调用 S o r t ( ) Sort() Sort()函数对数组进行排序。

但是,Sort函数只能处理基本数据类型的排序,而我们在使用Java的时候,大多数情况都是对象数组。

遇到对象数组,我们常常会使用自定义的比较器。

Collections.sort(array,new Comparator<T>(){
	@Override
	public int compare(T o1,To2){
		return 0;
	}
});

当然,我们在对基本数据类型数组排序的时候也一般不会用到自定义数组,但是笔者今天在处理排序时得到了一个需求:希望能够对数字的每一位拆开来排序。即不是直接比大小,而是比较每一位上的数字大小。

笔者遇到了这样的问题:

在这里插入图片描述
这里有一个需要注意的事情,基本数据类型是无法使用自定义比较器的。本来笔者以为这里只是类型的不同,只需要将 i n t [ ] int[] int[]换做 A r r a y Array Array就可以了,笔者又错了,哈哈~

在这里插入图片描述
终于,笔者发现 L i s t < T > List<T> List<T>这里的泛型要求,类似之前笔者犯过的一个错误,这里需要传入对象类型。如果是String数组,就不会产生错误了。于是乎,笔者对此进行了修改~

在这里插入图片描述

  • 注意,此处将 i n t [ ] int[] int[]换成了 I n t e g e r [ ] Integer[] Integer[],自定义比较器传入参数必须是一个 L i s t < T > List<T> List<T>

温故知新,未央书斋

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ambrosedream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值