2013-08-25 20 views
0

如何將類型的LinkedList排序方法如何在包含Foo類型的對象的列表上進行排序?

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包含objects.On列表憑什麼將列表進行排序有什麼影響?

+3

沒有意識到Java API已關閉,無法聯繫到審查。因爲這裏有很好的解釋。 –

回答

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那麼你將不能夠進行任何不同類型的實現。

0

查看Collections#sort(List<T>)的API。它只會在T擴展Comparable時編譯。

如果Foo不延伸Comparable,您的代碼將無法編譯。 如果是這樣,列表將按Foo的自然排序進行排序,如0123'的解釋。

相關問題