thể trùng lặp:
How to sort a Map<Key, Value> on the values in Java?Sắp xếp một HashMap dựa trên Giá trị rồi Khóa?
Tôi có một HashMap loại:
HashMap<String, Integer> h = new HashMap<String, Integer>();
HashMap chứa một danh sách các Strings và Integer là một bộ đếm cho số lần chuỗi đã được tìm thấy. Những gì tôi muốn có thể làm là sắp xếp HashMap dựa trên các số nguyên, sau đó theo thứ tự bảng chữ cái của các chuỗi.
Tại thời điểm tôi đang giữ kỷ lục về sự xuất hiện lớn nhất của một từ (biến có tên max) và hiển thị các giá trị như sau:
public void print(){
while(max > 0){
for (String key : h.keySet()){
if(h.get(key) == max){
System.out.println(key + " " + h.get(key));
}
}
max--;
}
}
Mà không sắp xếp các giá trị theo thứ tự abc, cũng nó truy cập HashMap max * h (kích thước) lần.
Giải pháp tốt hơn là gì?
@krock tìm tốt. Đúng, cùng một câu hỏi. – cletus