import java.util.List;

public class AmbilSampaiBatas {

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

    public static void main(String[] args) {
        List<Produk> produk = List.of(
                new Produk("Kopi Arabika", "minuman", 85000),
                new Produk("Teh Hijau", "minuman", 45000),
                new Produk("Madu Hutan", "makanan", 120000),
                new Produk("Roti Gandum", "makanan", 30000)
        );

        // filter memeriksa SETIAP elemen
        System.out.println("filter    : " + produk.stream()
                .filter(p -> p.harga() >= 50000)
                .map(Produk::nama)
                .toList());

        // takeWhile berhenti di pelanggaran PERTAMA
        System.out.println("takeWhile: " + produk.stream()
                .takeWhile(p -> p.harga() >= 50000)
                .map(Produk::nama)
                .toList());

        // dropWhile membuang prefiks yang lolos, lalu meloloskan sisanya
        System.out.println("dropWhile: " + produk.stream()
                .dropWhile(p -> p.harga() >= 50000)
                .map(Produk::nama)
                .toList());
    }
}
