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, LinkedHashMap
adlandı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 LinkedHashMap
adlandı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.