У меня есть массив произвольных объектов
- Каждый объект имеет уникальный идентификатор
- Новые объекты добавляются в конец очереди (хвост)
- Объекты снимаются сверху для обработки (FIFO)
- Объекты, ожидающие обработки, могут быть удалены, если требуется.
Проблема заключается в том, чтобы найти текущую позицию Объекта в очереди из хвоста с учетом идентификатора.
Какой самый быстрый способ сделать это? Просто чтобы прояснить, я не хочу Object из идентификатора, поэтому просто хэш-карта не является решением. Что мне действительно нужно, так это позиция.
Мы думали о двух путях:
- Грубая сила, найди в петле
- добавить новое поле в объекте, в котором хранится глобальный индекс, который увеличивается на единицу для каждого объекта, добавляемого в очередь. Затем мы можем быстро получить позицию, проверив глобальный индекс, сохраненный в последнем элементе и в этом элементе. Однако единственная сложность заключается в том, что, если один из объектов удаляется, глобальный индекс всех элементов, представленных ниже, необходимо обновить.
Есть идеи получше? Пожалуйста, предложите.