java 配列同士が同じであるかを判定する

java 配列同士が同じであるかを判定する

javaで、配列同士が同じであるかを判定する手順を記述してます。「Arrays.equals」に判定したい配列を指定することで可能です。「==」では判定できません。

環境

  • OS windows11 home
  • java 19.0.1

手順

配列同士が同じであるかを判定するには、「Arrays.equals」を使用します。

Arrays.equals( 配列 , 配列 )

実際に、使用してみます。

import java.util.Arrays;

public class App {
    public static void main(String[] args) throws Exception {

        int[] a = {1, 2, 3, 4, 5};
        int[] b = {1, 2, 3, 4, 5};
        int[] c = {1, 2, 3};
        int[] d = a;

        System.out.println(Arrays.equals(a, b)); // true
        System.out.println(Arrays.equals(a, c)); // false
        System.out.println(Arrays.equals(a, d)); // true

    }
}

比較されていることが確認できます。

「==」で比較

ちなみに「==」で比較すると正しい結果は得られません。

import java.util.Arrays;

public class App {
    public static void main(String[] args) throws Exception {

        int[] a = {1, 2, 3, 4, 5};
        int[] b = {1, 2, 3, 4, 5};
        int[] c = {1, 2, 3};
        int[] d = a;

        System.out.println(a == b); // false
        System.out.println(a == c); // false

        System.out.println(a == d); // true

    }
}

多次元配列を比較

多次元配列を比較する場合は「equals」ではできず、「deepEquals」を使用します。

import java.util.Arrays;

public class App {
    public static void main(String[] args) throws Exception {

        int[][] a = {{1, 2}, {3, 4}};
        int[][] b = {{1, 2}, {3, 4}};
        int[][] c = {{1, 2, 3}, {4}};
        int[][] d = a;

        System.out.println(Arrays.equals(a, b)); // false
        System.out.println(Arrays.equals(a, c)); // false
        System.out.println(Arrays.equals(a, d)); // true

        System.out.println(Arrays.deepEquals(a, b)); // true
        System.out.println(Arrays.deepEquals(a, c)); // false
        System.out.println(Arrays.deepEquals(a, d)); // true

    }
}