Πρόγραμμα Java για ταξινόμηση χάρτη βάσει τιμών

Σε αυτό το πρόγραμμα, θα μάθετε να ταξινομείτε έναν δεδομένο χάρτη με τιμές στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Διεπαφή χάρτη Java
  • Java LinkedHashMap

Παράδειγμα: Ταξινόμηση χάρτη βάσει τιμών

 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; ) ) 

Παραγωγή

 Κλειδί: Αυστραλία Αξία: Κανμπέρα Κλειδί: Νεπάλ Αξία: Κατμαντού Κλειδί: Αγγλία Αξία: Λονδίνο Κλειδί: Ινδία Αξία: Νέο Δελχί Κλειδί: Ηνωμένες Πολιτείες Αξία: Ουάσιγκτον

Στο παραπάνω πρόγραμμα, δημιουργήσαμε μια LinkedHashMapονομαστική πρωτεύουσα. Ο χάρτης αποθηκεύει τις χώρες και τις αντίστοιχες πρωτεύουσες τους.

Εδώ, δημιουργήσαμε μια sortMap()μέθοδο που παίρνει τον χάρτη και επιστρέφει τον ταξινομημένο χάρτη.

Μέσα στη μέθοδο, δημιουργήσαμε για πρώτη φορά μια λίστα με το όνομα CapitalList από τις πρωτεύουσες του χάρτη. Στη συνέχεια, χρησιμοποιούμε τη sort()μέθοδο για Collectionsνα ταξινομήσουμε στοιχεία της λίστας.

Η sort()μέθοδος παίρνει δύο παραμέτρους: λίστα προς ταξινόμηση και συγκριτικό . Στην περίπτωσή μας, ο συγκριτής είναι μια έκφραση λάμδα.

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

Εδώ, η έκφραση λάμδα παίρνει δύο παρακείμενα στοιχεία (l1 και l2) της λίστας. Στη συνέχεια χρησιμοποίησε τη getValue()μέθοδο για να πάρει την τιμή και τη compareTo()μέθοδο για να συγκρίνει δύο τιμές.

Μετά τη λειτουργία, λαμβάνουμε την ταξινομημένη λίστα capitalList. Στη συνέχεια, απλώς μετατρέπουμε τη λίστα σε LinkedHashMapόνομα που ονομάζεται και επιστρέφουμε.

Πίσω στη main()μέθοδο, περνάμε κάθε στοιχείο του χάρτη και εκτυπώνουμε το κλειδί και την αξία του.

ενδιαφέροντα άρθρα...