Java-program för att sortera en karta efter värden

I det här programmet lär du dig att sortera en given karta efter värden i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java Map Interface
  • Java LinkedHashMap

Exempel: Sortera en karta efter värden

 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

 Nyckel: Australien Värde: Canberra Nyckel: Nepal Värde: Katmandu Nyckel: England Värde: London Nyckel: Indien Värde: New Delhi Nyckel: USA Värde: Washington

I programmet ovan har vi skapat LinkedHashMapnamngivna huvudstäder. Kartan lagrar länder och deras respektive huvudstäder.

Här har vi skapat en sortMap()metod som tar kartan och returnerar den sorterade kartan.

Inuti metoden skapade vi först en lista med namnet capitalList från kartstäderna. Vi använder sedan sort()metoden för Collectionsatt sortera element i listan.

Den sort()metoden tar två parametrar: lista som ska sorteras och en jämförelse . I vårt fall är komparatorn ett lambdauttryck.

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

Här tar lambdauttrycket två intilliggande element (l1 och l2) i listan. Den använde sedan getValue()metoden för att få värdet och compareTo()metoden för att jämföra två värden.

Efter operationen får vi den sorterade listan capitalList. Sedan konverterar vi bara listan till LinkedHashMapnamngivna resultat och returnerar den.

Tillbaka i main()metoden slingrar vi igenom varje objekt på kartan och skriver ut dess nyckel och värde.

Intressanta artiklar...