Bir Haritayı Değerlere Göre Sıralamak için Java Programı

Bu programda, belirli bir haritayı Java'daki değerlere göre sıralamayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:

  • Java Harita Arayüzü
  • Java LinkedHashMap

Örnek: Bir haritayı değerlere göre sıralama

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

Çıktı

 Anahtar: Avustralya Değer: Canberra Anahtar: Nepal Değer: Katmandu Anahtar: İngiltere Değer: Londra Anahtar: Hindistan Değer: Yeni Delhi Anahtar: Amerika Birleşik Devletleri Değer: Washington

Yukarıdaki programda, LinkedHashMapadlandırılmış bir başkent oluşturduk . Harita, ülkeleri ve başkentlerini saklar.

Burada sortMap()haritayı alan ve sıralı haritayı döndüren bir yöntem oluşturduk .

Yöntemin içinde, ilk olarak harita başlıklarından capitalList adında bir liste oluşturduk. Daha sonra listenin öğelerini sıralamak için sort()yöntemini kullanırız Collections.

sort(): Yöntemi iki parametre alır sıralanmasını liste ve bir karşılaştırıcı . Bizim durumumuzda, karşılaştırıcı bir lambda ifadesidir.

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

Burada lambda ifadesi listenin iki bitişik elemanını (l1 ve l2) alır. Daha sonra getValue()değeri elde etmek için compareTo()yöntemi ve iki değeri karşılaştırmak için yöntemi kullandı.

İşlemden sonra, sıralanmış sermayeList listesini alıyoruz. Ardından listeyi LinkedHashMapadlandırılmış sonuca dönüştürüp döndürürüz.

main()Yönteme geri döndüğümüzde, haritadaki her öğenin üzerinden geçip anahtarını ve değerini yazdırıyoruz.

Ilginç makaleler...