Sobes.tech
Junior — Middle

Stream API kullanırken Stream'in başlatılması hangi zamanlarda gerçekleşir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da bir Stream'in başlatılması, bir terminal işlem çağrıldığında gerçekleşir. Bu noktaya kadar, Stream üzerindeki işlemler tembel (lazy) olup yürütülmez.

Yani, bir Stream oluşturup ara işlemler (örneğin, filter(), map()) uyguladığınızda, bunlar sadece işleme zinciri oluşturur, hesaplamaları başlatmaz.

Örnek:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Burada hiçbir şey olmaz

List<String> result = stream.collect(Collectors.toList()); // Terminal işlem
// Burada elemanlar işlenir

Dolayısıyla, Stream yalnızca terminal işlem çağrıldığında, örneğin collect(), forEach(), reduce() gibi, başlatılır ve veri işleme başlar.