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.