Ebben a programban megtanulja az adott térképet Java értékek szerint rendezni.
A példa megértéséhez ismernie kell a következő Java programozási témákat:
- Java Map Interface
- Java LinkedHashMap
Példa: Rendezzen egy térképet értékek szerint
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; ) )
Kimenet
Kulcs: Ausztrália Érték: Canberra Kulcs: Nepál Érték: Katmandu Kulcs: Anglia Érték: London Kulcs: India Érték: Új Delhi Kulcs: Egyesült Államok Érték: Washington
A fenti programban létrehoztunk egy LinkedHashMap
megnevezett nagybetűket. A térkép országokat és azok fővárosait tárolja.
Itt létrehoztunk egy sortMap()
módszert, amely felveszi a térképet és visszaadja a rendezett térképet.
A módszer belsejében először a capitalList nevű listát hoztuk létre a térkép nagybetűiből. Ezután a lista elemeinek rendezésére használjuk a sort()
módszert Collections
.
A sort()
módszer két paramétert vesz igénybe: a rendezendő listát és az összehasonlítót . Esetünkben az összehasonlító lambda kifejezés.
(l1, l2) -> l1.getValue().compareTo(l2.getValue())
Itt a lambda kifejezés a lista két szomszédos elemét (l1 és l2) veszi fel. Ezután a getValue()
módszerrel megkapta az értéket, a compareTo()
módszerrel pedig két értéket hasonlított össze.
A művelet után megkapjuk a rendezett lista kapitalList. Ezután egyszerűen konvertáljuk a listát LinkedHashMap
megnevezett eredményre, és visszaadjuk.
Visszatérve a main()
módszerhez, a térkép minden elemét végigvezetjük, és kinyomtatjuk annak kulcsát és értékét.