I would like to know what is the best, fastest and easiest way to compare between 2-dimension arrays of integer. the length of arrays is the same. (one of the array's is temporary array)
Edan wrote:
just need to see if the value is the same
If you want to check that a[i][j]
equals b[i][j]
for all elements, just use Arrays.deepEquals(a, b)
.
Look at java.util.Arrays
; it has many array utilities that you should familiarize yourself with.
import java.util.Arrays;
int[][] arr1;
int[][] arr2;
//...
if (Arrays.deepEquals(arr1, arr2)) //...
From the API:
Returns
true
if the two specified arrays are deeply equal to one another. Unlike theequals(Object[],Object[])
method, this method is appropriate for use with nested arrays of arbitrary depth.
Note that in Java, int[][]
is a subtype of Object[]
. Java doesn't really have true two dimensional arrays. It has array of arrays.
The difference between equals
and deepEquals
for nested arrays is shown here (note that by default Java initializes int
arrays with zeroes as elements).
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"
Arrays.equals()
returns false
for two dimensional arraysIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With