では、ユーザーがキーボードから配列を入力し、それらを比較する簡単なコンソールアプリを作ってみましょう。
1次元配列版 → 2次元配列版の順に紹介します。
入力から配列を作って比較するアプリ(1次元版)
ユーザーが2つの配列を入力し、中身が同じかどうか を判定するプログラムです。
仕様
- 配列の長さを入力
- 要素を1つずつ入力
- 2つの配列が同じか
Arrays.equalsで比較 - 結果を表示
コード(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 を使います。
仕様
- 行数・列数を入力
- 2つの2次元配列をユーザーに入力させる
Arrays.deepEqualsで比較- 結果表示
コード(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 |
そして、入力から配列を作ることで「配列の構造」「入力の流れ」「比較のしくみ」を自然に理解できます。
