Java-program til at sortere et kort efter værdier

I dette program lærer du at sortere et givet kort efter værdier i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java Map Interface
  • Java LinkedHashMap

Eksempel: Sorter et kort efter værdier

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

Produktion

 Nøgle: Australien Værdi: Canberra Nøgle: Nepal Værdi: Kathmandu Nøgle: England Værdi: London Nøgle: Indien Værdi: New Delhi Nøgle: USA Værdi: Washington

I ovenstående program har vi oprettet LinkedHashMapnavngivne hovedstæder. Kortet gemmer lande og deres respektive hovedstæder.

Her har vi oprettet en sortMap()metode, der tager kortet og returnerer det sorterede kort.

Inde i metoden oprettede vi først en liste med navnet capitalList fra kortets hovedstæder. Vi bruger derefter sort()metoden til Collectionsat sortere elementer på listen.

Den sort()metode tager to parametre: liste, der skal sorteres og en komparator . I vores tilfælde er komparatoren et lambda-udtryk.

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

Her tager lambda-udtrykket to tilstødende elementer (l1 og l2) på listen. Derefter brugte den getValue()metoden til at hente værdien og compareTo()metoden til at sammenligne to værdier.

Efter operationen får vi den sorterede liste capitalList. Derefter konverterer vi blot listen til LinkedHashMapnavngivet resultat og returnerer den.

Tilbage i main()metoden løber vi gennem hvert element på kortet og udskriver dets nøgle og værdi.

Interessante artikler...