import java.util.*;

public class StatistikDanPencarian {
    public static void main(String[] args) {
        List<Integer> data = new ArrayList<>(List.of(12, 7, 45, 12, 89, 7, 12));

        System.out.println("frequency(12) : " + Collections.frequency(data, 12));
        System.out.println("frequency(99) : " + Collections.frequency(data, 99));

        List<Integer> hadiah = List.of(100, 200);
        System.out.println("disjoint       : " + Collections.disjoint(data, hadiah));

        System.out.println("max            : " + Collections.max(data));
        System.out.println("min            : " + Collections.min(data));
        System.out.println("max (reverse)  : " + Collections.max(data, Comparator.reverseOrder()));

        List<String> nama = List.of("Budi", "Siti", "Dewi", "Anton");
        System.out.println("max nama       : " + Collections.max(nama));
        System.out.println("min nama       : " + Collections.min(nama));

        // binarySearch menuntut list yang sudah terurut menaik.
        List<Integer> terurut = new ArrayList<>(data);
        Collections.sort(terurut);
        System.out.println("terurut        : " + terurut);
        System.out.println("cari 45        : " + Collections.binarySearch(terurut, 45));
        System.out.println("cari 20        : " + Collections.binarySearch(terurut, 20));
    }
}
