Java 8 Stream Terminal ve Non-Terminal Operasyonlar

Posted by dogukanhan on May 11, 2019 · 1 min read

Java 8 Stream ile uğraşırken en çok karşılaştığımız konu operasyon ayrımı olarak da adlandırabileceğimiz terminal ve non-terminal opersyonlardır. Bu operasyonlar bizim Stream pipeline döngümüzü kontrol etmektedirler.

Terminal Operasyonlar

Terminal operasyonlar kaynak üzerinden sonuç üreten operasyonlardır. Bu operasyonun kullanılması ile birlikte Stream Pipeline döngümüz sona ermektedır. Bir Stream Pipeline döngüsünde yalnızca bir tane terminal operation bulunabilmektedir.

  • toArray()

  • collect()

  • count()

  • reduce()

  • forEach()

  • forEachOrdered()

  • min()

  • max()

  • anyMatch()

  • allMatch()

  • noneMatch()

  • findAny()

  • findFirst()

Intermediate veya Non-Terminal Operasyonlar

Non terminal operasyonlar kaynak üzerinden işlem yaparlar ve bu işlem sonucunda yine işlenebilecek bir kaynak ortaya çıkmaktadır. Bu yüzden birden fazla kez kullanılabilmektedirler. Bir stream pipeline içerisinde istenildiği kadar non terminal operasyon kullanılabilmektedir.

  • filter()

  • map()

  • flatMap()

  • distinct()

  • sorted()

  • peek()

  • limit()
  • skip()

Kaynak: