Arrays.sort()方法采用的是模板方法模式,步骤为mergeSort --- comparaTo --- swap

原理:

自定义Array.sort()方法

自定义Array.sort()方法

所以如果自定义排序方法时,需要实现comparaTo()方法

comparaTo()方法的实现为:

public class Duck implements Comparable<Object> {
        String duckStr;
        public Duck(String str){
            this.duckStr = str;
        }
       
        @Override
        public int compareTo(Object obj) {
            Duck str1 = (Duck)obj;
            if (this.duckStr.length() < str1.duckStr.length()) {
                return -1;
            } else if (this.duckStr.length() == str1.duckStr.length()) {
                return 0;
            } else {
                return 1;
            }
        }
}

排序:

        Duck[] duck = { new Duck("abc"), new Duck("a") };
        Arrays.sort(duck);
        for (int i = 0; i < duck.length; i++) {
            System.out.println(duck[i].duckStr);
        }

结果:

a

abc

相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-30
  • 2022-12-23
  • 2022-12-23
  • 2021-11-16
  • 2021-07-23
  • 2021-06-25
  • 2021-06-05
相关资源
相似解决方案