Sobes.tech
Junior — Middle

Stream API'de veri akışlarıyla çalışırken 'sonuçsuz işlem' teriminin ne anlama geldiğini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java Stream API'de işlemler terminal ve non-terminal (ara) işlemler olarak ayrılır.

Non-terminal bir işlem, yeni bir akış (Stream) döndürür ve veri işleme işlemini hemen başlatmaz. Dönüşüm zinciri oluşturmak için kullanılır, örneğin, filtreleme, haritalama, sıralama.

Non-terminal işlemlere örnekler:

  • filter()
  • map()
  • sorted()
  • distinct()

Bu işlemler tembel çalışır: terminal bir işlem çağrılana kadar, örneğin, forEach(), collect(), count() çalıştırılmaz.

Örnek:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // non-terminal
    .map(String::toUpperCase)    // non-terminal
    .forEach(System.out::println); // terminal

Bu şekilde, non-terminal işlemler dönüşüm zinciri oluşturmayı sağlar ve terminal işlem yürütmeyi başlatır.