Есть ли BlockingMap как BlockingQueue в java?

Я хотел бы иметь одну структуру данных BlockingMap, которая очень похожа на BlockingQueue. Метод take blockingQueue будет ждать там до тех пор, пока элемент не будет доступен. Я бы хотел, чтобы метод get BlockingMap дождался там, пока не появится соответствующий ключ? Доступна ли такая структура данных, которую я могу использовать?

Ответы

Ответ 1

Я просто использовал BlockingQueue<Map.Entry<K,V>> в прошлом. Но недавно я столкнулся с этой Блокирующей картой для Java. Однако я не использовал его сам.

Ответ 2

Надеюсь, это, что вы хотите.

public class BlockingHashMap<K,V>
extends java.lang.Object
implements BlockingMap<K,V>

получить

public V get(java.lang.Object key)

Возвращает значение, для которого указан указанный ключ, или null, если эта карта не содержит сопоставления для ключа. Обратите внимание, что значение null используется в качестве специального маркера для указания отсутствия запрошенной клавиши

Указано:

get in interface java.util.Map<K,V>

Указано:

get in interface BlockingMap<K,V>

Параметры:

key - the key whose associated value is to be returned

Возврат:

the value to which the specified key is mapped, or null if this map contains no mapping for the key

Броски:

java.lang.ClassCastException - if the key is of an inappropriate type for this map
java.lang.NullPointerException - if the specified key is null and this map does not permit null keys (optional)
java.lang.IllegalStateException - if the map has been shut-down