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

Java Java
スポンサーリンク

ここでは「入力した複数の整数を List<Integer> に格納 → そのリストを Map<Integer, Integer> に変換して、各値の出現回数を数える」サンプルを紹介します。

サンプルコード:出現回数を数える

import java.util.*;

public class ListToMapSample {
    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;
        }

        // 出現回数を数える Map
        Map<Integer, Integer> countMap = new HashMap<>();

        for (int n : numbers) {
            // すでにキーがあれば +1、なければ 1
            countMap.put(n, countMap.getOrDefault(n, 0) + 1);
        }

        // 結果表示
        System.out.println("入力された整数リスト: " + numbers);
        System.out.println("出現回数マップ: " + countMap);
    }
}
Java

✅ 実行例

整数をスペース区切りで入力してください(例: 10 20 30 20 10):
30 10 20 10 40 20 10
入力された整数リスト: [30, 10, 20, 10, 40, 20, 10]
出現回数マップ: {20=2, 40=1, 10=3, 30=1}

ポイント

  • Map<Integer, Integer> を使うと「値 → 出現回数」を対応付けられる
  • getOrDefault(key, 0) を使うと「キーがなければ 0」を返すので便利
  • 出現回数を数える処理は「頻度カウント」と呼ばれ、実務でもよく使う

発展アイデア

  • 出現回数で ソート(多い順・少ない順)
  • 出現回数が一番多い値(モード)を求める
  • TreeMap を使ってキーを昇順に並べる
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました