Самая близкая вещь в стандартной библиотеке - CopyOnWriteArrayList .Это «одновременно» в том смысле, что для читателей нет блокировки и, следовательно, нет конкуренции;однако доступ для авторов сериализуется и стоит очень дорого.Компромисс немного острее, чем для одновременной хэш-карты: чтение действительно дешево, но запись действительно дорого.
Кажется, что можно написать реализацию списка, в которой использовалась бы стратегия одновременной блокировки с чередованиемhashmap для одноэлементных операций сохранения размера, таких как get
и set
(и, возможно, add
до конца списка), но стратегия копирования при записи для операций изменения размера, таких как add
иremove
.Впрочем, может быть довольно сложно получить разумный порядок сохраняющих размер и изменяющих размер мутаций.