msksgm’s blog

msksgm’s blog

Webエンジニアです.日々の勉強,読書,映画観賞,美術観賞の記録を載せます.

Stream APIを使ってArray配列の合計を計算する(Java)

Java で for 文を使わずに Array 配列の合計を求める方法がわからなかったのでメモ.

for 文の場合

まずは普通パターン

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
for (int i = 0; i<integerList.size(); i++){
    sum += integerList.get(i);
}
System.out.println(sum);

Stream API の場合

reduce を使う場合

非メソッド参照

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
sum = integerList.stream().reduce(0, (a, b) -> a+b);
System.out.println(sum);

メソッド参照

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
sum = integerList.stream().reduce(0, Integer::sum);
System.out.println(sum);

collect を使う場合

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
sum = integerList.stream().collect(Collectors.summingInt(Integer::intValue));
System.out.println(sum);

IntStream を使う場合

非メソッド参照

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
sum = integerList.stream().mapToInt(intValue -> intValue).sum();
System.out.println(sum);

メソッド参照

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
sum = integerList.stream().mapToInt(Integer::intValue).sum();
System.out.println(sum);