Proses data secara deklaratif: membuat stream, operasi intermediate dan terminal, collect, parallel streams, dan Optional.

# Stream Fundamentals

Pahami konsep pipeline stream sebagai alternatif perulangan imperatif.

Buka →
# Creating Streams

Bangun stream dari collection, array, nilai, dan generator.

Buka →
# Intermediate vs Terminal Operations

Bedakan operasi lazy yang menyusun pipeline dari operasi yang menjalankannya.

Buka →
# filter

Saring elemen stream dengan Predicate sesuai kriteria.

Buka →
# map dan flatMap

Ubah tiap elemen dengan map dan ratakan struktur bersarang dengan flatMap.

Buka →
# sorted dan distinct

Urutkan elemen dan buang duplikat dalam pipeline stream.

Buka →
# limit, skip, takeWhile, dan dropWhile

Kendalikan jumlah dan rentang elemen yang diproses stream.

Buka →
# reduce

Agregasi seluruh elemen menjadi satu nilai dengan reduce.

Buka →
# collect

Kumpulkan hasil stream ke collection atau struktur lain dengan collect.

Buka →
# Collectors

Kenali Collector bawaan untuk toList, joining, averaging, dan sebagainya.

Buka →
# groupingBy dan partitioningBy

Kelompokkan data berdasarkan kunci dan pisahkan berdasarkan kondisi.

Buka →
# Primitive Streams

Hindari boxing dengan IntStream, LongStream, dan DoubleStream.

Buka →
# Optional

Nyatakan nilai yang mungkin tidak ada dengan Optional dan rantai operasinya.

Buka →
# Stream Laziness

Amati cara stream menunda pekerjaan hingga terminal operation berjalan.

Buka →
# Stream Ordering

Pahami encounter order dan flag unordered pada stream.

Buka →
# Parallel Streams

Paralelkan pipeline dengan parallelStream dan kenali risikonya.

Buka →
# Performa Stream

Ukur dan bandingkan performa stream terhadap perulangan biasa.

Buka →
# Best Practices Stream

Tulis pipeline stream yang terbaca, aman, dan tidak berlebihan.

Buka →