Java 文字列のListをIntStreamに変換して平均値を求める




リストからストリーム。ストリームからイントストリーム。んで計算w

Streamインタフェースを使って、リストの文字列をintへ変換して平均値を求めるサンプル

文字列のリストをintへ変換してIntStreamへ持ち込みます。
あとは、平均値を計算した結果を出力します。

実行結果

サンプルの解説

今回は、ListからStream。さらにStreamからIntStreamへ持っていく例です。
ということで、平均値を求める云々はあまり大事なとこではありませんw

List#stream() ※正しくはCollection#stream()

List#stream()を使うことで、ストリームAPIへ持ち込むことができます。

Stream#mapToInt(ToIntFunction)

ここでリストの文字列をintへ変換することで、StreamからIntStreamへ持っていってます。
引数には、IntStreamへ持ち込む(≒各値をintへ変換する)方法を指定します。
この例では、mapToIntの引数であるToIntFunction関数インタフェースのメソッドの型(引数・返値)とInteger.parseInt()の型が一緒なのでそのまま利用しています。

IntStream#average()

平均値を求めてます。そのままですw
ただし、返り値はOptionalDoubleです。

OptionalDouble#getAsDouble()

ここでdoubleへ変換してます。
余談ですが、orElse()を使うとnullなときにデフォルト値をセットすることもできます。この例ではありえないですが。。