Я ищу структуру данных, которая способна хорошо обрабатывать параллелизм (поскольку произойдет удаление и добавление из нескольких потоков) и которая позволяет быстро сопоставить (O (1)) из хешированного ключа соответствующийобъект.
Я также должен иметь возможность произвольно получать элементы X из этой структуры данных.
Я начал с Set, но, как ни странно, реализации ConcurrentSet нет, и я хочу получить ссылкук моему объекту, так как я хочу что-то с ним делать.
В настоящее время у меня есть ConcurrentDictionary, который отображает int (хэшированное значение) на объект.Кажется, это хорошо работает для первых требований, но это совсем не удобно для случайного выбора элементов.Я думал о преобразовании значений в массив и случайном выборе из этого, но я не думаю, что это будет соответствовать сложности и памяти.
Есть ли способ сделать это?Или другой подход к этой проблеме, который позволил бы мне иметь хорошие характеристики для одновременного отображения объектов и случайного выбора некоторых?