Memahami Java Stream: olah koleksi dengan lebih ringkas
Pelajari alur filter, map, dan collect untuk mengolah data Java dengan kode yang mudah dibaca.
Dari koleksi menjadi alur data
Stream membantu kita menjelaskan transformasi data sebagai beberapa langkah kecil. Misalnya, sebuah aplikasi menyimpan skor peserta dan perlu menampilkan skor yang memenuhi batas kelulusan.
import java.util.List;
public class Main {
public static void main(String[] args) {
var scores = List.of(62, 85, 71, 93);
var passed = scores.stream()
.filter(score -> score >= 75)
.map(score -> "Lulus: " + score)
.toList();
passed.forEach(System.out::println);
}
}
Contoh ini menggunakan Java 17 atau lebih baru. Hasilnya adalah Lulus: 85 dan Lulus: 93.
Mengapa urutannya penting?
filter memilih elemen yang memenuhi kondisi. Setelah itu, map mengubah setiap angka menjadi teks. Operasi toList menutup alur dan menghasilkan sebuah daftar baru; daftar sumber tidak berubah.
Hal yang perlu diingat
Stream hanya dapat dikonsumsi sekali. Buat stream baru dari koleksi jika membutuhkan pemrosesan lain. Hindari mengubah variabel di luar lambda supaya alur tetap mudah dipahami.
Coba sendiri
Ubah batas kelulusan menjadi 70, lalu tambahkan sorted() sebelum map untuk mengurutkan hasil dari skor terkecil.
