Java Stream’lerde forEach ve map Arasındaki Fark
Java 8 ile gelen Stream API, koleksiyonlar üzerinde daha akıcı ve verimli işlemler yapmamızı sağlayan güçlü bir araçtır. Stream API, koleksiyonlar üzerinde çeşitli işlemler gerçekleştirmek için farklı yöntemler sunar. Bu yöntemlerden ikisi, forEach ve map, sıklıkla kullanılır. Ancak, her iki yöntem de farklı amaçlar için tasarlanmıştır ve aralarında önemli farklar vardır.
forEach Yöntemi
forEach yöntemi, bir Stream’in her bir elemanını sırayla işleyen bir tüketici işlevi alır. Bu yöntem, Stream’in her elemanını işlemden geçirmek ve yan etkiler üretmek için kullanılır. Yan etkiler, bir fonksiyonun çalıştırıldığı ortamda değişiklikler yapması anlamına gelir. Örneğin, bir Stream’in elemanlarını konsola yazdırmak veya bir dosyaya kaydetmek, yan etkilerdir.
forEach yöntemi bir değer döndürmez. Bu nedenle, forEach yönteminin sonuçlarını daha sonraki işlemler için kullanamazsınız. Aşağıdaki örnekte, bir Stream’in her bir elemanını konsola yazdıran forEach yöntemi gösterilmiştir.
“`java
List
numbers.stream()
.forEach(System.out::println);
“`
map Yöntemi
map yöntemi, bir Stream’in her bir elemanını dönüştüren bir fonksiyon alır. Bu fonksiyon, girdi elemanını alıp farklı bir değere dönüştürür. map yöntemi, Stream’in elemanlarını başka bir türdeki elemanlara dönüştürmek veya yeni elemanlar oluşturmak için kullanılır. map yöntemi, dönüştürülen elemanları içeren yeni bir Stream döndürür.
Aşağıdaki örnekte, bir Stream’in her bir elemanını karesiyle değiştiren map yöntemi gösterilmiştir.
“`java
List
List
.map(n -> n * n)
.collect(Collectors.toList());
“`
forEach ve map Arasındaki Farklar
| Özellik | forEach | map |
|—|—|—|
| Amaç | Her elemanı işleyerek yan etkiler üretmek | Elemanları farklı türdeki elemanlara dönüştürmek |
| Dönüş değeri | Yok | Yeni bir Stream |
| Kullanım örnekleri | Konsola yazdırma, dosyaya kaydetme | Elemanları karesiyle değiştirme, String’leri Integer’a dönüştürme |
Özet
forEach ve map, Java Stream API’sinde sıklıkla kullanılan iki önemli yöntemdir. forEach, bir Stream’in her bir elemanını işleyerek yan etkiler üretmek için kullanılırken, map, Stream’in her bir elemanını dönüştürmek için kullanılır. İki yöntemin de kendine özgü kullanım alanları ve amaçları vardır. Doğru yöntemi seçmek, etkili bir şekilde Stream API kullanımı için önemlidir.
Eğer Java ile daha fazla çalışmak ve Stream API’nin gücünü keşfetmek isterseniz, [Fatih Soysal’ın blogunu](https://fatihsoysal.com) ziyaret etmenizi tavsiye ederim.
#Etiketler: forEach, map, Java Stream, Stream API, Java 8, programlama, yazılım geliştirme