Chương trình Java để sắp xếp bản đồ theo giá trị

Trong chương trình này, bạn sẽ học cách sắp xếp một bản đồ nhất định theo các giá trị trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Giao diện bản đồ Java
  • Java LinkedHashMap

Ví dụ: Sắp xếp bản đồ theo giá trị

 import java.util.*; public class Main ( public static void main(String() args) ( // create a map and store elements to it LinkedHashMap capitals = new LinkedHashMap(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); // call the sortMap() method to sort the map Map result = sortMap(capitals); for (Map.Entry entry : result.entrySet()) ( System.out.print("Key: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); ) ) public static LinkedHashMap sortMap(LinkedHashMap map) ( List  capitalList = new LinkedList(map.entrySet()); // call the sort() method of Collections Collections.sort(capitalList, (l1, l2) -> l1.getValue().compareTo(l2.getValue())); // create a new map LinkedHashMap result = new LinkedHashMap(); // get entry from list to the map for (Map.Entry entry : capitalList) ( result.put(entry.getKey(), entry.getValue()); ) return result; ) ) 

Đầu ra

 Khoá: Úc Giá trị: Canberra Khoá: Nepal Giá trị: Kathmandu Khoá: Anh Giá trị: London Khoá: Ấn Độ Giá trị: New Delhi Khoá: Hoa Kỳ Giá trị: Washington

Trong chương trình trên, chúng ta đã tạo một LinkedHashMapchữ hoa có tên. Bản đồ lưu trữ các quốc gia và thủ đô tương ứng của họ.

Ở đây, chúng tôi đã tạo một sortMap()phương thức lấy bản đồ và trả về bản đồ đã được sắp xếp.

Bên trong phương thức, đầu tiên chúng tôi tạo một danh sách có tên capitalList từ các thủ đô của bản đồ. Sau đó, chúng tôi sử dụng sort()phương pháp Collectionssắp xếp các phần tử của danh sách.

Các sort()phương pháp có hai tham số: danh sách được sắp xếpmột so sánh . Trong trường hợp của chúng ta, bộ so sánh là một biểu thức lambda.

 (l1, l2) -> l1.getValue().compareTo(l2.getValue())

Ở đây, biểu thức lambda nhận hai phần tử liền kề (l1 và l2) của danh sách. Sau đó, nó sử dụng getValue()phương thức để lấy giá trị và compareTo()phương thức để so sánh hai giá trị.

Sau khi thao tác, chúng ta nhận được danh sách đã sắp xếp capitalList. Sau đó, chúng tôi chỉ cần chuyển đổi danh sách thành LinkedHashMapkết quả được đặt tên và trả về nó.

Quay lại main()phương pháp này, chúng tôi lặp lại từng mục trong bản đồ và in khóa và giá trị của nó.

thú vị bài viết...