辅助理解Java中的比较器Comparator

这篇博客详细探讨了Java中Comparator接口的compareTo()方法,通过一个字符串数组排序的实例,解释了如何使用自定义比较器进行字典序排序。博主在学习算法过程中理解此方法,并分享了代码实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇博文主要是本人对Comparator中的compareTo()方法进行了理解。

Comparator是一个接口,基于策略模式进行使用。
在不同的排序算法中,往往涉及到比大小,在代码中使用Comparator
时,一般通过重写compareTo()方法在条件判断处返回一个正数、负
数或0,通过返回值的正负来决定算法的下一步怎么进行

本程序是在学习左神算法时跟着敲的
题目:对一个字符串数组[“ac”,“ab”,“bf”,“bd”,“cf”],将其连接后,返回按字典序最小的字符串

练习程序

public class LowestLexicography {
        //比较器,用来比较两个值的大小
        //return 负数,第一个参数放在前面
        //return 正数,第二个参数放在前面
        //return 0,两个参数相等
      public static class MyComparator implements Comparator<String> {
        @Override
        public int compare(String o1, String o2) {//哪一个字符串作为前缀更小,就排在前面
            return (o1 + o2).compareTo(o2 + o1);
        }
      }
      
      public static String lowestString(String[] strs) {
        if (strs == null || strs.length =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值