本文主要是介绍【Java】Comparable和Comparator的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 区别
- Comparable示例
- Comparator示例
- 参考资料
都可以用于排序。都是接口。
区别
Comparable示例
让被排序的类实现 Comparable 接口,重写 compareTo() 方法。
import java.util.*;public class Main {public static void main(String[] args){TreeSet<Person> ts = new TreeSet<>();ts.add(new Person("小b", 4));ts.add(new Person("小a", 4));ts.add(new Person("小b", 3));ts.forEach(System.out::println);}
}class Person implements Comparable<Person> {private String name;private int age;public Person(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic int compareTo(Person o) {if (age != o.age) return age - o.age;return name.compareTo(o.name);}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}
Comparator示例
写在 sort() 方法中,可以使用 lambda 表达式替代。
import java.util.*;public class Main {public static void main(String[] args){List<Integer> arrayList = new ArrayList<Integer>(){{add(5);add(8);add(2);add(6);add(3);}};Collections.sort(arrayList, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});System.out.println(arrayList);}
}
参考资料
comparable-和-comparator-的区别
这篇关于【Java】Comparable和Comparator的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!