LINUX.ORG.RU

Сработает ли в моем случае идея заменить arrayList массивом

 


0

1

У меня есть arrayList некоторых объектов, их в среднем 150, максимум около 1000. Они часто создаются и удаляюсь(около 30 в секунду). Проблема в том что удаляются они из середины, и если я правильно понимаю механизм arrayList то стоимость этой операции тем больше чем дальше элемент храниться от последнего элемента. Но мне порядок элементов не важен.

Моя идея в следующем, создаем массив с максимально возможным количеством объектов, дальше в некой переменной (пусть count) храним количество этих объектов. При добавлении элемента просто создаем его в array[count] = new Obj(); При удалении из середины последний объект перемешаем в тот что удаляем. В результате работает быстрее. Более того, никаких проблем с многопоточностью.

array[this_element_delete] = array[count-1];
array[count-1] = null;

Но собственно я плохо знаю джаву, как в этом случае будет вести себя сборщик мусора? Другие подводные камни?

★★★
Ответ на: комментарий от abs

нет, я оба раза имел в виду, что ты малолетний долбоеб.

anonymous
()
Ответ на: комментарий от abs

выложи исходники и/или перепишу на Qt;

ліл.

maloi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.