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 LinkedHashMap
namngivna 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 Collections
att 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 LinkedHashMap
namngivna resultat och returnerar den.
Tillbaka i main()
metoden slingrar vi igenom varje objekt på kartan och skriver ut dess nyckel och värde.