繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM