この講義では、数値コレクションの通常のストリーム(
Stream<Integer>、
Stream<Double>)が、ボクシング/アンボクシング(boxing/unboxing)によって非効率になる理由と、プリミティブストリーム —
IntStream、
LongStream、
DoubleStream — がそれをどう回避するかを解説します。
mapToInt/
boxed() のような変換、集約操作(
sum()、
average()、
summaryStatistics())、
OptionalInt/
OptionalDouble による安全な結果の扱い、そして最適化が実際に効く場面と、その効果を
JMH で測る方法も取り上げます。