daemon_n, классически есть два варианта удаления элемента массива из середины:
1) Как ты сделал. Последний элемент помещаем на место удалённого и уменьшаем размер массива. При этом страдает порядок.
2) Сместить в цикле все элементы после удалённого на 1 влево, а после уменьшить размер массива на 1.
Первый вариант работает быстро. O(1) сложность. Второй обладает линейной сложностью O(N), то есть чем больше массив, тем больше операций.