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
有什么影响。列表将以什么为基础进行排序?
答案 0 :(得分:0)
如果您使对象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
,那么您将无法执行任何各种排序实现。
答案 1 :(得分:0)
查看Collections#sort(List<T>)
的API。它只会在T扩展Comparable时编译。
如果Foo
未扩展Comparable
,则代码将无法编译。
如果是这样,列表将按照Foo的自然顺序排序,如here所述。