Поскольку values()
предоставляет вспомогательный набор значений, вы можете решить его следующим образом:
map.values().remove(map.values().toArray()[index]);
Возможно, не очень эффективно (особенно в отношении памяти), но оно должно быть O(N)
простокак и следовало ожидать.
Кстати, я думаю, что вопрос правомерен для всех операций List
.(В любом случае, оно не должно быть медленнее, чем LinkedList
, верно?)
Я решил сделать LinkedHashMapList
, который расширил бы LinkedHashMap
и реализовал интерфейс List
.Удивительно, но это кажется невозможным из-за столкновения для удаления.Существующий метод remove
возвращает ранее отображенный объект, в то время как List.remove
должен возвращать boolean
.
Это просто отражение, и, честно говоря, меня тоже раздражает, что LinkedHashMap
может 'к нему больше относятся как LinkedList
.