В двух словах я пишу приложение, которому нужна реализация BlockingQueue, которая обеспечивает как добавление/удаление FIFO, так и быстрый метод contains, так как я буду называть его TON.
LinkedBlockingQueue получает большую часть пути, но кажется, что его метод contains работает в линейном времени, поскольку он основан на методе AbstractQueue contains. Я не видел ничего в Java API, который, казалось, рекламировал LBQ с быстрым contains из коробки.
Что делает вещи более жесткими, мой проект находится на очень суровом временном хрусте (нет, это не домашнее задание). Я мог бы сделать быстрое и грязное расширение LBQ с HashSet снизу для быстрого contains, но мне все равно придется его протестировать, что может съесть значительное количество человеко-часов. Мне интересно, есть ли там проверенные/хорошо протестированные библиотеки, которые предоставляют расширение LinkedBlockingQueue с помощью метода contains, который работает в O (1) времени...? Если нет, любые другие предложения приветствуются.