Копирование первой половины ArrayList

ЕстьArrayList<Integer> alи я хочу скопировать первую половину его элементов в другуюArrayList<Integer> firstHalf, (Если al имеет нечетное количество элементов,firstHalf должен иметь еще один элемент.) Однако следующий код выдаетIndexOutOfBoundsExceptionи говоритIndex: 0, Size: 0Хотя я не уверен, как это может быть проблемой, так как индексы ArrayLists начинаются с 0. Кроме того, я знаю о.arraycopy, но я хотел бы сделать это таким образом, с циклами for.

 int x = al.size()/2 + (al.size()%2) - 1;
 for(int i = 0; i < x; i++){
    firstHalf.set(i, al.get(i));
 }

Ответы на вопрос(4)

Ваш ответ на вопрос