整数のリストを合計したいです。次のように動作しますが、構文が適切ではないようです。コードを最適化できますか?
Map<String, Integer> integers;
integers.values().stream().mapToInt(i -> i).sum();
ベストアンサー1
これは動作しますが、 はi -> i
自動アンボックス化を実行するため、奇妙に感じられます。mapToInt
ストリームをIntStream
「プリミティブ int 値要素」に変換します。 次のいずれかが動作し、元の構文でコンパイラが内部で何を実行しているかをより適切に説明します。
integers.values().stream().mapToInt(i -> i.intValue()).sum();
integers.values().stream().mapToInt(Integer::intValue).sum();