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

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

2 ответов


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


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

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

get

public V get(java.lang.Object key)

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

указано:

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

указанного by:

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