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.