Java | 複数の入力をまとめて List に格納するサンプル

Java Java
スポンサーリンク

では、前回の「分析結果をテキストに保存」をさらに発展させて、CSV形式(Excelなどで開ける形式)で出力するサンプルを紹介します。

サンプルコード:分析結果を CSV に保存

import java.util.*;
import java.io.*;

public class ListAnalysisToCSV {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> numbers = new ArrayList<>();

        System.out.println("整数をスペース区切りで入力してください(例: 10 20 30 20 10):");
        String line = sc.nextLine();

        // 入力を分割してリストに追加
        String[] parts = line.split("\\s+");
        for (String p : parts) {
            try {
                int n = Integer.parseInt(p);
                numbers.add(n);
            } catch (NumberFormatException e) {
                System.out.println("数値に変換できません: " + p);
            }
        }

        if (numbers.isEmpty()) {
            System.out.println("有効な数値が入力されませんでした。");
            return;
        }

        // --- 基本統計値 ---
        int sum = 0;
        for (int n : numbers) sum += n;
        double avg = (double) sum / numbers.size();
        int max = Collections.max(numbers);
        int min = Collections.min(numbers);

        // --- 出現回数マップ ---
        Map<Integer, Integer> countMap = new HashMap<>();
        for (int n : numbers) {
            countMap.put(n, countMap.getOrDefault(n, 0) + 1);
        }

        // --- 出現回数ランキング(降順ソート) ---
        List<Map.Entry<Integer, Integer>> entryList = new ArrayList<>(countMap.entrySet());
        entryList.sort((e1, e2) -> e2.getValue().compareTo(e1.getValue()));

        // --- CSV出力 ---
        try (PrintWriter pw = new PrintWriter(new FileWriter("analysis_result.csv"))) {
            // 基本統計値
            pw.println("項目,値");
            pw.println("合計," + sum);
            pw.println("平均," + avg);
            pw.println("最大値," + max);
            pw.println("最小値," + min);
            pw.println();

            // 出現回数ランキング
            pw.println("値,出現回数");
            for (Map.Entry<Integer, Integer> entry : entryList) {
                pw.println(entry.getKey() + "," + entry.getValue());
            }
        } catch (IOException e) {
            System.out.println("CSV出力中にエラーが発生しました: " + e.getMessage());
        }

        System.out.println("分析結果を analysis_result.csv に保存しました。");
    }
}
Java

✅ 出力される CSV(例)

項目,値
合計,170
平均,21.25
最大値,40
最小値,10

値,出現回数
10,3
30,2
20,2
40,1

このファイルを Excel で開くと、表形式で見やすく表示されます。


ポイント

  • CSVは「カンマ区切りのテキスト」なので Excel や Googleスプレッドシートでそのまま開ける
  • 先頭行に「ヘッダー(列名)」を入れると見やすい
  • PrintWriter を使えば簡単に書き出せる

👉 これで「入力 → 集計 → ランキング → グラフ表示 → CSV保存」まで一通りの流れが完成しました。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました