我創建了一個HashMap對象,它將String作爲鍵和相應的值存儲爲int。現在我想擁有一個Priority Queue,它的所有字符串都存在於HashMap對象中,並賦值作爲分配優先級的參考。我寫了下面的代碼Java中的HashMap對象的優先級隊列
public class URIQueue {
private HashMap<String,Integer> CopyQURI;
private PriorityQueue<String> QURI;
public class TComparator<String> {
public int compareTo(String s1, String s2) {
if (CopyQURI.get(s2) - CopyQURI.get(s1) >= 0) {
return 1;
} else {
return 0;
}
}
}
public URIQueue() {
CopyQURI=new HashMap<>(100);
TComparator<String> tc=new TComparator<>();
QURI=new PriorityQueue<>(100, tc); //Line x
}
}
行x顯示錯誤無法推斷優先級隊列的類型參數。請指導我做了什麼錯誤。
這種「可變比較器」可能非常危險並且容易出錯。你最好創建一個新類來保存字符串和整數。 –