Java | 配列比較メソッド

Java Java
スポンサーリンク

では、ユーザーがキーボードから配列を入力し、それらを比較する簡単なコンソールアプリを作ってみましょう。
1次元配列版 → 2次元配列版の順に紹介します。


入力から配列を作って比較するアプリ(1次元版)

ユーザーが2つの配列を入力し、中身が同じかどうか を判定するプログラムです。

仕様

  1. 配列の長さを入力
  2. 要素を1つずつ入力
  3. 2つの配列が同じか Arrays.equals で比較
  4. 結果を表示

コード(1次元配列)

import java.util.Arrays;
import java.util.Scanner;

public class ArrayCompareApp {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // --- 1つ目の配列を作成 ---
        System.out.print("1つ目の配列の長さを入力してください: ");
        int n1 = sc.nextInt();
        int[] array1 = new int[n1];

        System.out.println("1つ目の配列の中身を入力してください:");
        for (int i = 0; i < n1; i++) {
            System.out.print("array1[" + i + "] = ");
            array1[i] = sc.nextInt();
        }

        // --- 2つ目の配列を作成 ---
        System.out.print("\n2つ目の配列の長さを入力してください: ");
        int n2 = sc.nextInt();
        int[] array2 = new int[n2];

        System.out.println("2つ目の配列の中身を入力してください:");
        for (int i = 0; i < n2; i++) {
            System.out.print("array2[" + i + "] = ");
            array2[i] = sc.nextInt();
        }

        // --- 配列の比較 ---
        boolean isEqual = Arrays.equals(array1, array2);

        // --- 結果表示 ---
        System.out.println("\n比較結果: " + (isEqual ? "同じです!" : "違います。"));

        sc.close();
    }
}
Java

実行例(1次元)

1つ目の配列の長さを入力してください: 3
1つ目の配列の中身を入力してください:
array1[0] = 10
array1[1] = 20
array1[2] = 30

2つ目の配列の長さを入力してください: 3
2つ目の配列の中身を入力してください:
array2[0] = 10
array2[1] = 20
array2[2] = 30

比較結果: 同じです!

入力から2次元配列を作って比較するアプリ(2次元版)

次は、多次元配列を入力して比較するバージョンです。
比較には Arrays.deepEquals を使います。

仕様

  1. 行数・列数を入力
  2. 2つの2次元配列をユーザーに入力させる
  3. Arrays.deepEquals で比較
  4. 結果表示

コード(2次元配列)

import java.util.Arrays;
import java.util.Scanner;

public class DeepArrayCompareApp {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // --- 行数と列数を入力 ---
        System.out.print("配列の行数を入力してください: ");
        int rows = sc.nextInt();

        System.out.print("配列の列数を入力してください: ");
        int cols = sc.nextInt();

        // --- 1つ目の配列を作成 ---
        int[][] a1 = new int[rows][cols];
        System.out.println("\n1つ目の2次元配列を入力してください:");
        for (int r = 0; r < rows; r++) {
            for (int c = 0; c < cols; c++) {
                System.out.print("a1[" + r + "][" + c + "] = ");
                a1[r][c] = sc.nextInt();
            }
        }

        // --- 2つ目の配列を作成 ---
        int[][] a2 = new int[rows][cols];
        System.out.println("\n2つ目の2次元配列を入力してください:");
        for (int r = 0; r < rows; r++) {
            for (int c = 0; c < cols; c++) {
                System.out.print("a2[" + r + "][" + c + "] = ");
                a2[r][c] = sc.nextInt();
            }
        }

        // --- deepEquals で比較 ---
        boolean isEqual = Arrays.deepEquals(a1, a2);

        System.out.println("\n比較結果: " + (isEqual ? "同じです!" : "違います。"));

        sc.close();
    }
}
Java

実行例(2次元)

配列の行数を入力してください: 2
配列の列数を入力してください: 2

1つ目の2次元配列を入力してください:
a1[0][0] = 1
a1[0][1] = 2
a1[1][0] = 3
a1[1][1] = 4

2つ目の2次元配列を入力してください:
a2[0][0] = 1
a2[0][1] = 2
a2[1][0] = 3
a2[1][1] = 4

比較結果: 同じです!

まとめ

配列の種類比較メソッド
1次元配列Arrays.equals
多次元配列Arrays.deepEquals

そして、入力から配列を作ることで「配列の構造」「入力の流れ」「比較のしくみ」を自然に理解できます。

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