As far as I know, in Java there are no such things as generics. In terms of types, ArrayList and ArrayList are the same things.
Java uses type erasure for generics. It means that all type information about the generic is erased at compile time. So ArrayList become ArrayList.
So it's just a compile-time trick. I am guessing, to avoid any confusions or mistakes that the programmer might do, they allowed ArrayList[] to be instantiated like this: new ArrayList[10].
So an ArrayList[] and a ArrayList[] are the same thing because the information in brackets is erased at compile time.