2013-11-02 14 views
2

我在做一個Java鍛鍊列表,和我有下面的類頭:Java的有序雙向鏈表相媲美

public class OrderedDoublyLL<K extends Comparable<K>, V> implements OrderedDictionary<K, V> 

這意味着,我的有序雙向鏈表由鍵可以自動排序?

+0

我想你是指這個實現https://code.google.com/a/eclipselabs.org/p/fct-photoprint/source/browse/trunk/src/datastructures/OrderedDoublyLL.java?r=83 – constantlearner

+0

如果'OrderedDictionary '是一個類而不是接口,它可能會自動對鍵進行排序。 –

+0

我會一個人上課,但謝謝。當我完成時,我會檢查該網站。 –

回答

4

「自動」?不只是從那個班級的標題。類的實現必須強制執行。它確保可以訂購密鑰,但不是訂購密鑰。

+0

謝謝。那麼如果不把「K extends Comparable 」不可能使用compareTo方法來訂購我的密鑰? –

+0

這是正確的。 –

+0

雖然它只是'',但如果班級在其構造函數中使用了「Comparator 」(或只是「Comparator 」),它仍然可以被訂購。這就是TreeMap的功能,例如:http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html#TreeMap(java.util.Comparator) – yshavit

2

它的意思是OrderedDoublyLL實現所有的方法OrderedDictionary<K,V>K extends Comparable<K>僅僅意味着OrderedDoublyLL可能只需要能夠又名它們實現Comparable<K>進行相互比較,對象。

如果OrderedDictionary<K, V>是一個已經定義了排序方法或常規類的抽象類,並且OrderedDoublyLL擴展了它,那麼你不一定需要自己實現一個方法,但事實並非如此。

+0

感謝您的好解釋 –

+0

@Silva_PT_SCP沒問題。 –