Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでリストの平均値を求める方法

Javaでリスト(List)の平均値を求める方法はいくつかあります。この記事では、Stream APIを使ったモダンな方法と、従来のforループを使った方法の2つを紹介します。

方法1:Stream APIとIntSummaryStatisticsを使う

Java 8以降では、Stream APIのsummaryStatistics()メソッドを利用することで、平均値だけでなく合計・最大値・最小値などの統計情報も一度に取得できます。コードが簡潔になり、可読性も高まるため、推奨される書き方です。

サンプルコード

import java.util.*;
public class Demo {
    public static void main(String []args){
        List<Integer> list = Arrays.asList(10, 20, 50, 100, 130, 150, 200, 250, 500);
        IntSummaryStatistics summaryStats = list.stream()
        .mapToInt((a) -> a)
        .summaryStatistics();
        System.out.println("リストの平均値 = " + summaryStats.getAverage());
    }
}

実行結果

リストの平均値 = 156.66666666666666

この例では、mapToInt()でIntegerのストリームをIntStreamに変換し、summaryStatistics()から得られるIntSummaryStatisticsオブジェクトのgetAverage()メソッドで平均値を取得しています。

方法2:forループと合計値を使う

より伝統的な方法として、拡張forループで要素を合計し、リストのサイズで割る方法もあります。空のリストに対して0除算が発生しないよう、事前に空チェックを行っている点に注目してください。

サンプルコード

import java.util.*;
public class Demo {
    public static void main(String []args){
        List<Integer> list = Arrays.asList(10, 20, 50, 100, 130, 150, 200, 250, 500);
        int sum = 0;
        for (int i : list) {
            sum += i;
        }
        if(list.isEmpty()){
            System.out.println("リストが空です!");
        } else {
            System.out.println("平均値 = " + sum/(float)list.size());
        }
    }
}

実行結果

平均値 = 156.66667

(float)へのキャストにより、整数同士の除算による切り捨てを防ぎ、小数点以下を含む正確な平均値を計算しています。キャストしない場合、結果は整数の156になってしまうので注意が必要です。

まとめ

簡潔さと追加の統計情報が必要ならStream API、シンプルさやJava 8以前の環境との互換性を重視するならforループを選ぶとよいでしょう。どちらの方法でも、空リストの扱いには注意して実装することが重要です。

  1. 正方形の面積を求めるJavaプログラムの書き方【初心者向け解説】

    この記事では、Javaを使って正方形の面積を求める方法をわかりやすく解説します。正方形の面積は、次の公式で計算できます。辺 × 辺つまり s2正方形の面積の計算式正方形の1辺の長さを s とすると、その面積は s2(辺の2乗)で表されます。下図のように、縦と横が同じ長さの図形であるため、辺同士を掛け合わせるだけで面積が求まります。入力例1辺の長さ : 4出力例正方形の面積 : 16アルゴリズム処理の流れは以下の手順になります。Step 1 - 開始Step 2 - 整数型の変数 my_side(辺の長さ)と my_area(面積)を宣言するStep 3 - ユーザーから値を読み込む、または値を

  2. JavaでList(リスト)を配列に変換する方法|toArray()とArrays.asList()の使い方

    Javaの開発において、List(リスト)と配列(Array)の相互変換は非常によく使われる基本的な操作です。 Listを配列に変換する最も簡単かつ推奨される方法は、.toArray()メソッドを使うことです。逆に、配列をListに戻したい場合は、Arrays.asList()メソッドを使用します。 以下では、文字列(String)のListや整数(Integer)のListを、それぞれ対応する配列に変換する具体例を紹介します。 String型のListを配列に変換する import java.util.ArrayList; import java.util.List; public cl