Sobes.tech
Junior

Java'da Stream API'nin temel fikri nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Stream API'nin temel fikri, koleksiyonların işlenmesi için deklaratif bir yöntem sağlamaktır. İmpératif yinelemeli yaklaşım yerine, akışlar (streams), verilerle ne yapılması gerektiğini (filtreleme, dönüştürme, toplama) tanımlamaya olanak tanır ve nasıl yapılacağı API'de bırakılır.

Ana kavramlar:

  • Değişmezlik: Akışlar, orijinal veri kaynağını değiştirmez. Akış işlemleri yeni akışlar veya sonuçlar oluşturur.
  • Tembel değerlendirme: filter() ve map() gibi birçok akış işlemi ara işlemlerdir. Bunlar, collect() veya forEach() gibi bir terminal işlem çağrılana kadar çalıştırılmaz. Bu, yürütmeyi optimize etmeye olanak tanır.
  • Hattı (Pipeline): Akış işlemleri, bir hat (pipeline) halinde birleştirilebilir. Her öğe, ardışık veya paralel olarak hat boyunca geçer.
  • Paralel işleme: Akışlar, verilerin kolayca paralel işlenmesine olanak tanıyacak şekilde tasarlanmıştır, genellikle minimal kod değişiklikleriyle (parallelStream()).

Avantajlar:

  • Koleksiyonlarla karmaşık işlemler için daha okunabilir ve ifade gücü yüksek kod.
  • Paralelleştirmeyi kolaylaştırır.
  • Döngülerle ilgili boilerplate kodu ortadan kaldırır.
// Örnek: String listesinin filtrelenmesi ve dönüştürülmesi
List<String> isimler = Arrays.asList("Alice", "Bob", "Charlie", "David");

List<Integer> uzunluklar = isimler.stream()
                                .filter(isim -> isim.startsWith("A")) // Ara işlem
                                .map(String::length)             // Ara işlem
                                .collect(Collectors.toList());   // Terminal işlem

// uzunluklar [5] içerecektir