And arrays where?
If You mean that ArrayList is not an array. If the ones inside the ArrayList is another matter.
In addition to "tight" binding to a specific implementation of List using an ArrayList did not see anything bad.
But in principle, in zavisimosti from the case binding to the specific implementation may be best needed.
As for me, so this option is s top.
final List<list<integer>> list = new ArrayList<>(10);</list<integer>