どうも、ちょげ(@chogetarou)です。
リスト(List)の平均値を取得する方法を紹介します。
方法
リスト(List)の平均値を取得する方法は、2つあります。
average()
ひとつは、average()を使う方法です。
まず、リスト(List)からstream()、stream()からmapToDouble()を呼び出します。
mapToDouble()の引数に、引数をそのまま返すラムダ式を指定します。
そして、mapToDouble()からaverage()、average()からorElse()を呼び出します。
orElse()の引数に結果がNULLの場合の値(デフォルト値)を指定します。
//list=対象のリスト, default = NULLの場合の値
double average = list.stream()
.mapToDouble(a -> a)
.average()
.orElse(default);
上記のaverage()は、stream()を呼び出したリスト(List)の平均値を取得します。
使用例
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<Integer> nums = new ArrayList<Integer>(5);
nums.add(4);
nums.add(9);
nums.add(2);
nums.add(1);
nums.add(7);
double average = nums.stream()
.mapToDouble(a -> a)
.average()
.orElse(0);
System.out.println(average);
}
}
出力:
4.6
合計値
もうひとつは、合計値を使う方法です。
まず、リスト(List)の合計値を取得します。
そして、合計値をリストから呼び出したsize()の戻り値で割ります。
//list=対象のリスト
//合計値を取得
int sum = 0;
for (int i : list) sum += i;
//平均値を取得
double average = sum / list.size();
上記の割り算は、リスト(List)の平均値を取得します。
使用例
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<Integer> nums = new ArrayList<Integer>(5);
nums.add(4);
nums.add(9);
nums.add(2);
nums.add(1);
nums.add(7);
int sum = 0;
for (int i : nums) sum += i;
double average = sum / nums.size();
System.out.println(average);
}
}
出力:
4.6
まとめ
リスト(List)の平均値を取得する方法は、次の2つです。
- average()を使う方法
double average = list.stream().mapToDouble(a -> a).average().orElse(default);
- 合計値を使う方法
double average = sum / list.size();
コメント