Java基础知识之比较器Comparator

本文详细介绍了Java中比较器(Comparator)的使用方法,通过具体示例解释了如何实现自定义排序逻辑,包括升序和降序的实现方式。文章还分析了比较器在Arrays.sort和Collections.sort方法中的应用。

一. 比较器的用法:

举例说明:

public class ComparatorTest{
    public static void main(String args[]){
        String[] strs = {"Hello" ,"world","I","love","java"};
        Arrays.sort(strs,new Comparator<String>(){
            public int compare(String s1,String s2){
                return s1.compareTo(s2)>0?1:-1;
            }
        });
        System.out.println(Arrays.toString(strs));
    }
}

比较器的用法大概用在两个地方,一个就是Arrays.sort(String[] ,Comparator<T>);一个就是Collections.sort(List<T>,Comparator<T>);

运行结果是:

[I, hello, hello, java, love, world]

二.关于比较后的顺序

取上面的代码为例:s1 指的是参数列表前面的数,s2 指的是参数列表后面的数,比较的结果是升序还是降序取决于下面这段代码:

return s1.compare(s2)>0?1:-1;

如果s1.compare(s2) >0 ,则说明整个数组是降序的,此时返回值 选择 1,表示需要进行再排序,则表示要将数组升序排序;

如果返回值选择 -1,表示不需要再排序,则表示将数组按原来的降序排序。所以上面的代码是升序排序的。

 

参考:https://blog.youkuaiyun.com/u013066244/article/details/78895747

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值