0

将如何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

4

2 回答 2

0

如果您使您成为 object 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,那么您将无法执行任何各种排序实现。

于 2013-08-25T19:02:59.703 回答
0

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

如果Foo不扩展Comparable,您的代码将无法编译。如果是这样,列表将按照 Foo 的自然顺序进行排序,如此所述。

于 2013-08-25T19:03:09.300 回答