ストリームにはオブジェクトに対応したストリームとプリミティブ型に対応したストリームがある。
java.util.stream.Streamインタフェースがオブジェクトに対応したストリームとなる。オブジェクトに対応しているということから、ジェネリクスで要素の型を指定する。
プリミティブ型に対応したストリームは以下の3種類が存在します。
・java.util.stream.IntStream
・java.util.stream.LongStream
・java.util.stream.DoubleStream
それぞれint、long、doubleに対応したストリームとなる。この3種類以外のプリミティブ型に対応したストリームは提供されていない。
いずれのストリームもjava.util.stream.BaseStreamインタフェースのサブインタフェースとなっている。
4種類のストリームはほぼ同じ機能を有している。しかし、例えばsumメソッドのように、プリミティブ型に対応したストリームだけに定義されているメソッドもある。