Посмотрите на java.util.Arrays
; в нем много утилит для работы с массивами, с которыми вам следует ознакомиться.
import java.util.Arrays;
int[][] arr1;
int[][] arr2;
//...
if (Arrays.deepEquals(arr1, arr2)) //...
С API :
Возвращает true
, если два указанных массива глубоко равны друг другу. В отличие от метода equals(Object[],Object[])
, этот метод подходит для использования с вложенными массивами произвольной глубины.
Обратите внимание, что в Java int[][]
является подтипом Object[]
. У Java действительно нет двухмерных массивов. Имеет массив массивов.
Здесь показана разница между equals
и deepEquals
для вложенных массивов (обратите внимание, что по умолчанию Java инициализирует int
массивы с нулями в качестве элементов).
import java.util.Arrays;
//...
System.out.println((new int[1]).equals(new int[1]));
// prints "false"
System.out.println(Arrays.equals(
new int[1],
new int[1]
)); // prints "true"
// invoked equals(int[], int[]) overload
System.out.println(Arrays.equals(
new int[1][1],
new int[1][1]
)); // prints "false"
// invoked equals(Object[], Object[]) overload
System.out.println(Arrays.deepEquals(
new int[1][1],
new int[1][1]
)); // prints "true"
Похожие вопросы