[英]How will sort method do a sort, on a list that contains objects of type 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的自然顺序进行排序,如解释在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.