Sobes.tech
Middle

Java'nın yeni sürümünde akışların kullanım amacı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Veri koleksiyonlarıyla çalışma kolaylaştırması.

Ana hedefler:

  • İşlevsellik: Veriyi deklaratif işlemek için lambda ifadeleri ve diğer fonksiyonel arayüzlerin kullanılmasını sağlar.
  • Paralellik: İşlemlerin paralelleştirilmesini kolaylaştırır, thread yönetimi olmadan.
  • Değiştirilebilirlik: Akışlar orijinal koleksiyonu değiştirmez. Akış üzerindeki işlemler yeni akışlar veya son sonuçlar oluşturur.
  • Performans: Lazy evaluation (tembel değerlendirme) sayesinde işlemler yalnızca gerektiğinde gerçekleştirilir.
  • Okunabilirlik: Kod, geleneksel döngülere kıyasla daha özlü ve ifade gücü yüksek hale gelir.

Kullanım örneği:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape");

        // Akışlar kullanılarak filtreleme ve dönüşüm
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Sadece "a" ile başlayanlar
                                           .map(String::toUpperCase)     // Büyük harfe dönüştür
                                           .collect(Collectors.toList());   // Yeni listeye topla

        System.out.println(filteredFruits); // Çıktı: [APPLE]
    }
}

Özetle, akışlar kodu daha modern, verimli ve okunabilir hale getirir, veri koleksiyonlarıyla çalışırken.