Java program za sortiranje karte prema vrijednostima

U ovom programu naučit ćete sortirati datu kartu prema vrijednostima u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Sučelje Java Map
  • Java LinkedHashMap

Primjer: Poredaj kartu prema vrijednostima

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

Izlaz

 Ključ: Australija Vrijednost: Canberra Ključ: Nepal Vrijednost: Kathmandu Ključ: Engleska Vrijednost: London Ključ: Indija Vrijednost: New Delhi Ključ: Sjedinjene Države Vrijednost: Washington

U gore navedenom programu stvorili smo LinkedHashMapimenovane glavne gradove. Na karti su pohranjene zemlje i njihovi glavni gradovi.

Ovdje smo stvorili sortMap()metodu koja uzima kartu i vraća razvrstanu kartu.

Unutar metode prvo smo stvorili popis pod nazivom capitalList iz glavnih gradova. Zatim koristimo sort()metodu Collectionsza sortiranje elemenata popisa.

sort()Metoda uzima dva parametra: popis treba sortirati i komparator . U našem je slučaju usporednik lambda izraz.

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

Ovdje lambda izraz uzima dva susjedna elementa (l1 i l2) popisa. Zatim je getValue()metodu koristio za dobivanje vrijednosti, a compareTo()metodu za usporedbu dviju vrijednosti.

Nakon operacije dobivamo razvrstani popis capitalList. Zatim jednostavno pretvorimo popis u LinkedHashMapimenovani rezultat i vratimo ga.

Povratak u main()metodu petljamo svaku stavku na karti i ispisujemo njezin ključ i vrijednost.

Zanimljivi članci...