Dalam program ini, Anda akan belajar mengurutkan peta yang diberikan berdasarkan nilai di Java.
Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:
- Antarmuka Peta Java
- Java LinkedHashMap
Contoh: Mengurutkan peta berdasarkan nilai
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; ) )
Keluaran
Kunci: Australia Nilai: Canberra Kunci: Nepal Nilai: Kathmandu Kunci: Inggris Nilai: London Kunci: India Nilai: New Delhi Kunci: Amerika Serikat Nilai: Washington
Dalam program di atas, kami telah membuat LinkedHashMap
ibukota bernama. Peta tersebut menyimpan negara dan ibukotanya masing-masing.
Di sini, kami telah membuat sortMap()
metode yang mengambil peta dan mengembalikan peta yang diurutkan.
Di dalam metode ini, pertama-tama kita membuat daftar bernama capitalList dari ibukota peta. Kami kemudian menggunakan sort()
metode Collections
untuk mengurutkan elemen daftar.
The sort()
Metode membutuhkan dua parameter: daftar akan diurutkan dan komparator . Dalam kasus kami, pembandingnya adalah ekspresi lambda.
(l1, l2) -> l1.getValue().compareTo(l2.getValue())
Di sini, ekspresi lambda mengambil dua elemen yang berdekatan (l1 dan l2) dari daftar. Kemudian digunakan getValue()
metode untuk mendapatkan nilai dan compareTo()
metode untuk membandingkan dua nilai.
Setelah operasi, kita mendapatkan daftar kapitalList yang diurutkan. Kemudian, kami cukup mengonversi daftar menjadi LinkedHashMap
hasil bernama dan mengembalikannya.
Kembali ke main()
metode, kami mengulang setiap item di peta dan mencetak kunci dan nilainya.