You do not have an array of rows and columns; there is no such thing as a multi-dimensional array. What you have is a 5-element array whose members are 4-element arrays themselves.
newFoo[123][456]; means a 123-element array whose members are each 456-element arrays of Foo. Not a Foo array going up to index 456 (that would contain 457 elements).
The equals() and similar methods do not usually
test for equality between Strings and String arrays, on the basis that a single String is going to be different from several Strings. An array is a different type of Object from a class instance. If you are testing equality between individual objects, you can try the equals() method with something to the left of it which is not
null. So,
"Campbell".equals(...); will happily accept anything as its argument. If you pass
null, you simply get
false back. If you pass something of a different class from String, you get
false. If you pass a String which doesn’t read “Campbell”, you will also get
false. You can of course test each array and (if the array isn’t
null) its elements in turn.