Trong bài viết này, chúng ta sẽ hiểu cách sắp xếp một bản đồ theo các giá trị. Java HashMap là một sự hoàn thiện dựa trên bảng băm của giao diện Bản đồ của Java. Nó là một tập hợp các cặp khóa-giá trị.
Dưới đây là một minh chứng về điều tương tự -
Giả sử đầu vào của chúng tôi là -
Input HashMap: Key = Java, Value = 45 Key = Scala, Value = 20 Key = Mysql, Value = 11 Key = Python, Value = 75
Đầu ra mong muốn sẽ là -
The HashMap after sorting is: Key = Mysql, Value = 11 Key = Scala, Value = 20 Key = Java, Value = 45 Key = Python, Value = 75
Thuật toán
Step 1 - START Step 2 - Declare namely Step 3 - Define the values. Step 4 - Use the ‘sort’ method to sort the elements of the map. Step 5 - Use the ‘getValue’ method to fetch the values and use the ‘compareTo’ method to comare two values. Step 6 - Iterate through the hashmap, and use the ‘getKey’ method to fetch the values into ‘temp’. Use ‘temp’ as the return value. Step 7 - Display the result Step 8 - Stop
Ví dụ 1
Ở đây, chúng tôi liên kết tất cả các hoạt động với nhau trong hàm "main".
import java.util.*; import java.lang.*; public class Demo { public static HashMap<String, Integer> sort(HashMap<String, Integer> input_map){ List<Map.Entry<String, Integer> > list = new LinkedList<Map.Entry<String, Integer> >(input_map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer> >() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2){ return (o1.getValue()).compareTo(o2.getValue()); } }); HashMap<String, Integer> temp = new LinkedHashMap<String, Integer>(); for (Map.Entry<String, Integer> aa : list) { temp.put(aa.getKey(), aa.getValue()); } return temp; } public static void main(String[] args){ HashMap<String, Integer> input_map = new HashMap<String, Integer>(); input_map.put("Java", 45); input_map.put("Scala", 20); input_map.put("Mysql", 11); input_map.put("Python", 75); System.out.println("The HashMap is defined as:"); for (Map.Entry<String, Integer> element : input_map.entrySet()) { System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue()); } Map<String, Integer> result_map = sort(input_map); System.out.println("\nThe HashMap after sorting is:"); for (Map.Entry<String, Integer> element : result_map.entrySet()) { System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue()); } } }
Đầu ra
The HashMap is defined as: Key = Java, Value = 45 Key = Scala, Value = 20 Key = Mysql, Value = 11 Key = Python, Value = 75 The HashMap after sorting is: Key = Mysql, Value = 11 Key = Scala, Value = 20 Key = Java, Value = 45 Key = Python, Value = 75
Ví dụ 2
Ở đây, chúng tôi đóng gói các hoạt động thành các hàm trưng bày lập trình hướng đối tượng.
import java.util.*; import java.lang.*; public class Demo { public static void main(String[] args){ HashMap<String, Integer> input_map = new HashMap<String, Integer>(); input_map.put("Java", 45); input_map.put("Scala", 20); input_map.put("Mysql", 11); input_map.put("Python", 75); System.out.println("The HashMap is defined as:"); for (Map.Entry<String, Integer> element : input_map.entrySet()) { System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue()); } List<Map.Entry<String, Integer> > list = new LinkedList<Map.Entry<String, Integer> >(input_map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer> >() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2){ return (o1.getValue()).compareTo(o2.getValue()); } }); HashMap<String, Integer> result_map = new LinkedHashMap<String, Integer>(); for (Map.Entry<String, Integer> aa : list) { result_map.put(aa.getKey(), aa.getValue()); } System.out.println("\nThe HashMap after sorting is:"); for (Map.Entry<String, Integer> element : result_map.entrySet()) { System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue()); } } }
Đầu ra
The HashMap is defined as: Key = Java, Value = 45 Key = Scala, Value = 20 Key = Mysql, Value = 11 Key = Python, Value = 75 The HashMap after sorting is: Key = Mysql, Value = 11 Key = Scala, Value = 20 Key = Java, Value = 45 Key = Python, Value = 75