美文网首页
剑指45题的Java实现与Comparator

剑指45题的Java实现与Comparator

作者: Skittle丶 | 来源:发表于2020-11-30 23:32 被阅读0次

    今天看了剑指的45题,其实也不难想,看了个很好的Java实现的代码:

    public class SortArrayForMinNumber {
        public String PrintMinNumber(int [] numbers) {
            if(numbers==null || numbers.length<=0)
                return "";
            ArrayList<String> list = new ArrayList<String>();
            for(int number:numbers)
                list.add(String.valueOf(number));
            Collections.sort(list,new Comparator<String>(){
                @Override
                public int compare(String s1,String s2){
                    String a=s1+s2;
                    String b=s2+s1;
                    return a.compareTo(b);
                }
            });
            StringBuilder sb= new StringBuilder();
            for(String str:list)
                sb.append(str);
            return sb.toString();
        }
    }
    

    其实最主要的就是重写的这个compare函数,之前看核心卷,认真读了一下comparable接口,但是都忘了。

    @Override
                public int compare(String s1,String s2){
                    String a=s1+s2;
                    String b=s2+s1;
                    return a.compareTo(b);
                }
    

    看了一下jdk8的手册才明白,


    image.png

    其实这个问题是把接口作为参数传入到这个sort函数中了,然后在里面进行了覆写。

    相关文章

      网友评论

          本文标题:剑指45题的Java实现与Comparator

          本文链接:https://www.haomeiwen.com/subject/vyqjwktx.html