Определить «случайный». Если вы имеете в виду индексированный, то такой коллекции нет. Вы можете осуществлять вставку / удаление в постоянное время, если вы откажетесь от требования «случайный элемент» - то есть у вас будет неконстантный поиск элемента, который будет удален или который будет точкой вставки. Или вы можете иметь постоянный поиск без постоянной вставки / удаления.
Коллекция, которая наилучшим образом соответствует этому требованию, - Vector
, которая обеспечивает O(log n)
для этих операций.
С другой стороны, если у вас есть элемент, который вы будете искать или удалять, просто выберите HashMap
. Это не точно постоянное время, но это справедливое приближение. Просто убедитесь, что у вас есть хорошая хеш-функция.