That syntax works fine for the non-generic ArrayList. (ideone)
But it won't work for the generic ArrayList: (ideone)
This code:
ArrayList[] subsection = new ArrayList[4];
Gives a compiler error:
Main.java:8: generic array creation
ArrayList[] subsection = new ArrayList[4];
For the generic version use an ArrayList>:
ArrayList> subsection = new ArrayList>();