JavaのStream APIについて

Stream APIとは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Collectionや配列を扱うAPIです。

List等の集計やソートを行うときに、for文を書かなくても、わかりやすく簡潔なソースコードを書くことができます。

Collection型(ListやSet)ではStreamを取得でき、取得したStreamから中間操作や終端操作のメソッドを呼び出します。

今回は自身がよく使った中間操作と終端操作をご紹介します。

中間操作

filter

条件に一致した値で絞り込むことができます。

ちなみに、filterを二つ付けるとAND条件で絞り込みが可能。

 

map

要素を取得することができるので、各値の変換等が可能です。

sorted

値のソートが可能です。

ComparableやComparatorインタフェースを実装して、compareToやcompareメソッドのオーバーライドで比較メソッドを使うことも可能です。

終端操作

forEach

要素を順に処理します。

collect

各要素をCollectionなどに収集します。

例ではListとしてまとめる処理を記載しました。

ご紹介したstreamメソッド以外にも便利なStream APIがあるので、自分の用途にあったものを探すのも良いかと思います。

可読性があがるのがメリットではありますが、多用のし過ぎは逆に可読性が低くなる可能性もあるため、使い方は要注意です。

参照:javadoc

https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス