Tôi đã tạo một đối tượng HashMap lưu trữ một String dưới dạng khóa và giá trị tương ứng như int. Bây giờ tôi muốn có một hàng đợi ưu tiên có tất cả các chuỗi hiện diện trong đối tượng HashMap với giá trị làm tham chiếu cho việc gán các mức độ ưu tiên. Tôi đã viết mã sau đâyHàng đợi ưu tiên cho đối tượng HashMap trong Java
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
}
}
Dòng x là lỗi hiển thị không thể suy luận loại đối số cho hàng đợi ưu tiên. Xin vui lòng hướng dẫn tôi những gì sai lầm tôi đã làm.
Loại "bộ so sánh có thể thay đổi" này có thể vô cùng nguy hiểm và dễ bị lỗi. Có lẽ bạn nên tạo một lớp mới để giữ chuỗi và số nguyên với nhau. –