I was trying an exercise where I would add 1000 elements to an arraylist and then remove them systematically from the list again(by specifying the index). The idea behind th
This happens because you are altering the indexes by removing. If you remove element 0, element 1 now becomes element 0. Now when you next remove 1, that is what used to be element 2 and what was element 1 still exists at index 0.
The easiest way to avoid this is to loop backwards from end to beginning.
alternatively, you could just keep removing index 0 until the ArrayList is empty.