[英]public class PriorityQueue <T extends Comparable<T>>
我在提出以下問題的答案時遇到了一些困難。 我能夠知道它使用了泛型,並且知道它將有助於消除該類型的某些運行時錯誤,但無法想到為它編寫答案。
將使用Java類來存儲優先級隊列的元素,這些元素將按優先級排序。 該類的頭是:
public class PriorityQueue<T extends Comparable<T>>
解釋<T extends Comparable<T>>
的意義,既適用於實現Priority Queue的代碼,也適用於創建Priority Queue實例的客戶端代碼。
這意味着T類型應該具有可以用於排序的compareTo方法。 這意味着您不必尋找一種方法來對分類進行硬編碼。 任何具有合適比較方法的T型都可以使用。
供參考: http : //download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
這允許PriorityQueue
使用T.compareTo(T)
而不是依賴於提供的Comparator<T>
對象
所有要做的就是要求類型T
的元素必須與相同類型的其他對象( Comparable<T>
)相比較。 之所以使用它而不是Comparable<?>
是后者只是說與某種類型可比。
但是,由於優先級隊列僅保存類型T
對象,因此僅比較類型T
其他對象,因此公平地要求T
必須與相同類型的其他對象可比。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.