import java.util.*;

public class UrutanKustomMap {
    public static void main(String[] args) {
        // Urutan menurun: key terbesar tampil lebih dulu.
        TreeMap<String, Integer> nilaiTurun = new TreeMap<>(Comparator.reverseOrder());
        nilaiTurun.put("Budi", 78);
        nilaiTurun.put("Siti", 92);
        nilaiTurun.put("Dewi", 88);
        System.out.println("reverseOrder()     : " + nilaiTurun);
        System.out.println("firstKey()         : " + nilaiTurun.firstKey());

        // Urutan komposit: panjang nama dulu, lalu alfabetis.
        Comparator<String> panjangLaluAbjad =
                Comparator.comparingInt(String::length)
                          .thenComparing(Comparator.naturalOrder());
        TreeMap<String, Integer> peserta = new TreeMap<>(panjangLaluAbjad);
        peserta.put("Anton", 3);
        peserta.put("Budi", 1);
        peserta.put("Dewi", 2);
        peserta.put("Rani", 4);
        System.out.println("panjang lalu abjad : " + peserta);
        System.out.println("firstKey()         : " + peserta.firstKey());
        System.out.println("lastKey()          : " + peserta.lastKey());
    }
}
