sort方法将如何对包含Foo类型对象的列表进行排序



类型的LinkedList将如何

LinkedList<FooClass> list = new LinkedList<FooClass>();
// FooClass extends Comparable
list.add(foo_obj_1);
list.add(foo_obj_2);
list.add(foo_obj_3);
list.add(foo_obj_4);

排序依据:

Collection.sort(list);

sort方法对包含对象列表的list有什么影响。列表将根据什么进行排序?

如果您使您成为对象comparable,那么您将覆盖compareTo方法。然后,您可以根据要比较的字段编写自己的自定义条件。然后可以像往常一样执行排序。

class Author implements Comparable<Author>{
    String firstName;
    String lastName;
    @Override
    public int compareTo(Author other){
        int last = this.lastName.compareTo(other.lastName);
        return last == 0 ? this.firstName.compareTo(other.firstName) : last;
    }
}

如果您的对象不实现Comparable,那么您将无法执行任何各种排序实现。

查看Collections#sort(List<T>)的API。只有当T扩展Comparable时,它才会编译。

如果Foo不扩展Comparable,则代码将不会编译。如果是,列表将按照Foo的自然排序进行排序,如下所述。

相关内容

  • 没有找到相关文章

最新更新