簡體   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