Хотел себе немного усложнить задачу, в итоге потерял два часа из-за корявой проверки на выполнение условий. Этот код пройдет первый пункт валидации:
ArrayList<String>[] listArrStr = (ArrayList<String>[]) new ArrayList[5];
А этот код не пройдет:
int max = (int) (Math.random()*10+2);
ArrayList<String>[] listArrStr = (ArrayList<String>[]) new ArrayList[max];