18

JDK 16 には、インスタンスtoList()に直接メソッドStreamが含まれるようになりました。以前の Java バージョンでは、常にcollectメソッドを使用してCollectorインスタンスを提供する必要がありました。

新しい方法では、入力する文字数が明らかに少なくなります。どちらの方法も交換可能ですか、それとも注意すべき微妙な違いはありますか?

var newList = someCollection.stream()
    .map(x -> mapX(x))
    .filter(x -> filterX(x))
    .toList();

// vs.

var oldList = someCollection.stream()
    .map(x -> mapX(x))
    .filter(x -> filterX(x))
    .collect(Collectors.toList());

(この質問は、Stream.toList() が Collectors.toList() よりも優れたパフォーマンスを発揮するかどうかに似ていますが、パフォーマンスではなく(のみ)動作に焦点を当てています。)

4

2 に答える 2