1. ホーム
  2. java

[解決済み] javaストリームで整数のリストを合計する方法は?

2022-03-23 11:47:32

質問

整数のリストを合計したい。以下のように動作しますが、構文がしっくりきません。このコードを最適化することは可能でしょうか?

Map<String, Integer> integers;
integers.values().stream().mapToInt(i -> i).sum();

解決方法は?

これはうまくいくのですが i -> i が自動的にアンボックスされるため、奇妙な感じがします。 mapToInt は、ストリームを IntStream プリミティブなint-valued要素の"である。 以下のいずれかが動作し、コンパイラがあなたの元の構文でボンネットの下で何をしているかをよりよく説明します。

integers.values().stream().mapToInt(i -> i.intValue()).sum();
integers.values().stream().mapToInt(Integer::intValue).sum();