Java基础知识之比较器Comparator

一. 比较器的用法:

举例说明:

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.csdn.net/u013066244/article/details/78895747

猜你喜欢

转载自blog.csdn.net/lintiyan/article/details/82987631