参考解答
如果我们想使用Array或Collection的排序方法时,需要在自定义类里实现Java提供Comparable接口。Comparable接口有compareTo(T OBJ)方法,它被排序方法所使用。我们应该重写这个方法,如果“this”对象比传递的对象参数更小、相等或更大时,它返回一个负整数、0或正整数。但是,在大多数实际情况下,我们想根据不同参数进行排序。比如,作为一个CEO,我想对雇员基于薪资进行排序,一个HR想基于年龄对他们进行排序。这就是我们需要使用Comparator接口的情景,因为Comparable.compareTo(Object o)方法实现只能基于一个字段进行排序,我们不能根据对象排序的需要选择字段。Comparator接口的compare(Object o1, Object o2)方法的实现需要传递两个对象参数,若第一个参数比第二个小,返回负整数;若第一个等于第二个,返回0;若第一个比第二个大,返回正整数。
相似问题
在迭代一个集合的时候 如何避免ConcurrentModificationException?
在迭代一个集合的时候,如何避免ConcurrentModificationException?
与Java集合框架相关的有哪些最好的实践?
与Java集合框架相关的有哪些最好的实践?
当一个集合被作为参数传递给一个函数时 如何才可以确保函数不能修改它?
当一个集合被作为参数传递给一个函数时,如何才可以确保函数不能修改它?
什么时候更适合用Array?
什么时候更适合用Array?
为何没有像Iterator.add()这样的方法 向集合中添加元素?
为何没有像Iterator add()这样的方法,向集合中添加元素?
