Skip to main content

Retrieving Operations

Retrieving Operations adalah operasi pada Stream untuk melakukan pengambilan sebagian data. Prinsip kerja Retrieving Operations hampir mirip dengan Filtering.

MethodKeterangan
limit(n)Mengambil sejumlah n data
skip(n)Menghiraukan sejumlah n data
takeWhile(T -> Boolean)Mengambil data selama kondisi true
dropWhile(T -> Boolean)Menghiraukan data selama kondisi true

limit

 List.of("sapi", "domba", "hiu", "rusa", "anoa").stream()
.limit(2) // mengambil 2 data
.forEach(System.out::println);

skip

List.of("sapi", "domba", "hiu", "rusa", "anoa").stream()
.skip(2) // lompat 2 data
.forEach(System.out::println);

takeWhile

 List.of("sapi", "domba", "hiu", "rusa", "anoa").stream()
.takeWhile(animal -> animal.length() <= 4) // mengambil data jika selama kondisi true dan TIDAK AKAN mengambil data lagi jika false
.forEach(System.out::println);

dropWhile

List.of("sapi", "domba", "hiu", "rusa", "anoa").stream()
.dropWhile(animal -> animal.length() <= 4) // skip data selama kondisi true dan akan mengambil data jika kondisi false dan data selanjutnya akan terus diambil
.forEach(System.out::println);

Retrieving Single Element

Stream juga memiliki kemampuan untuk mengambil satu element saja, namun operasi jenis ini merupakan operasi terminal, sehingga akan secara otomatis menjalankan aliran data di Stream:

MethodKeterangan
findAny()Mengambil random satu element
findFirst()Mengambil element pertama
info

Catatan: kedua operasi di atas sifatnya Optional jadi datanya bisa ada atau tidak

findAny

 Optional<String> optional = Stream.of("sapi", "domba", "hiu", "rusa", "anoa")
.findAny();

optional.ifPresent(System.out::println);

findFirst

Optional<String> optional = Stream.of("sapi", "domba", "hiu", "rusa", "anoa")
.findFirst();

optional.ifPresent(System.out::println);