Java program a térkép értékek szerinti rendezéséhez

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 LinkedHashMapmegnevezett 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 LinkedHashMapmegnevezett 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.

érdekes cikkek...