簡體   English   中英

公共類PriorityQueue <T extends Comparable<T> &gt;

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM