В jdk есть PriorityBlockingQueue, который может сортировать элементы с помощью (предоставляемого или используемого по умолчанию) компаратора.
Теперь мне нужен FilteringBlockingQueue, это параллельная очередь, которая предлагает в данный момент времени только подмножество элементов на основе динамического фильтра и для которой операция poll не удаляет элемент, а изменяет его состояние.
Изменение состояния элемента также должно привести к сигналу, так что любой ожидающий поток (в пределах вызова poll ()) сможет получить элемент и продолжить.
Идея состоит в том, чтобы сохранить одну параллельную коллекцию с разными разделами, каждый из которых является подмножеством элемента с одинаковым состоянием.
Опрос должен выполняться путем передачи предиката и мутатора, который переместит элемент в другой раздел в той же самой атомарной операции.
Такая вещь уже существует в «стандартной» библиотеке (и имеет ли она известное имя)?
edit: Я нашел похожий запрос здесь: Реализация списка блокировки Java , но без какого-либо принятого ответа ...