import java.util.List;

public class BuangDuplikat {

    record Produk(String nama, String kategori, int harga) {}

    public static void main(String[] args) {
        // Duplikat muncul karena data digabung dari dua cabang toko
        List<Produk> stok = List.of(
                new Produk("Kopi Arabika", "minuman", 85000),
                new Produk("Teh Hijau", "minuman", 45000),
                new Produk("Kopi Arabika", "minuman", 85000),
                new Produk("Roti Gandum", "makanan", 30000),
                new Produk("Teh Hijau", "minuman", 45000)
        );

        // distinct(): membuang duplikat menurut equals()
        List<Produk> unik = stok.stream().distinct().toList();
        System.out.println("Stok unik : " + unik.size() + " jenis");
        unik.forEach(p -> System.out.println("  " + p.nama() + " - " + p.harga()));

        // distinct pada Stream<String>: membandingkan teks utuh
        long jumlahNama = stok.stream().map(Produk::nama).distinct().count();
        System.out.println("Nama unik : " + jumlahNama + " nama");
    }
}
