We can’t create an array of a generic type, a parameterized type, or a type parameter
Collections provide correct toString, hashCode, equals implementations; Arrays don’t
Calling Array toString() directly or indirectly prints identity hash code(memory address), we need always rememberer to use Arrays.toString() or Arrays.toDeepString()
Arrays.toString()/toDeepString() doesn’t work for primitive array.
Array hashCode method is inherited from Object: based on the reference, have to use Arrays.hashCode(shallow implementation) or Arrays.deepHashCode
Array equals method is inherited from Object: based on the reference, have to use Arrays.equals(shallow implementation) or Arrays.deepEquals
More Pitfalls of Object Array
Arrays are fixed in size but Collections are dynamic in size.