Java-ohjelma kartan lajittelemiseksi arvojen mukaan

Tässä ohjelmassa opit lajittelemaan tietyn kartan Java-arvojen mukaan.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java Map Interface
  • Java LinkedHashMap

Esimerkki: Lajittele kartta arvojen mukaan

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

Tuotos

 Avain: Australia Arvo: Canberra-avain: Nepal-arvo: Kathmandu-avain: Englanti Arvo: Lontoon avain: Intia Arvo: New Delhi-avain: Yhdysvallat Arvo: Washington

Edellä olevassa ohjelmassa olemme luoneet LinkedHashMapnimetyt isot kirjaimet. Kartta tallentaa maat ja niiden pääkaupungit.

Tässä olemme luoneet sortMap()menetelmän, joka ottaa kartan ja palauttaa lajitellun kartan.

Menetelmän sisällä loimme ensin luettelon capitalList kartan pääkaupungeista. Sitten käytämme sort()menetelmää Collectionsluettelon elementtien lajittelemiseen.

sort()Menetelmässä otetaan kaksi parametria: luettelo voidaan lajitella ja vertailuryhmässä . Meidän tapauksessamme vertailija on lambda-lauseke.

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

Tässä lambda-lauseke vie kaksi vierekkäistä elementtiä (l1 ja l2) luettelosta. Sitten se käytti getValue()menetelmää arvon saamiseen ja compareTo()menetelmää kahden arvon vertaamiseen.

Operaation jälkeen saadaan lajiteltu luettelo capitalList. Sitten muunnamme luettelon yksinkertaisesti nimelliseksi LinkedHashMaptulokseksi ja palautamme sen.

Back in main()menetelmällä, me silmukan läpi kunkin kohteen kartalta ja tulostaa sen keskeiset ja arvoa.

Mielenkiintoisia artikkeleita...