12.2. MultimapCache API


MultimapCache API 公开几种方法与多映射缓存交互。在大多数情况下,这些方法是非阻塞的方法;如需更多信息,请参阅 限制

public interface MultimapCache<K, V> {

   CompletableFuture<Optional<CacheEntry<K, Collection<V>>>> getEntry(K key);

   CompletableFuture<Void> remove(SerializablePredicate<? super V> p);

   CompletableFuture<Void> put(K key, V value);

   CompletableFuture<Collection<V>> get(K key);

   CompletableFuture<Boolean> remove(K key);

   CompletableFuture<Boolean> remove(K key, V value);

   CompletableFuture<Void> remove(Predicate<? super V> p);

   CompletableFuture<Boolean> containsKey(K key);

   CompletableFuture<Boolean> containsValue(V value);

   CompletableFuture<Boolean> containsEntry(K key, V value);

   CompletableFuture<Long> size();

   boolean supportsDuplicates();

}

CompletableFuture<Void> put (K key, V value)

将键值对放在多映射缓存中。

MultimapCache<String, String> multimapCache = ...;

multimapCache.put("girlNames", "marie")
             .thenCompose(r1 -> multimapCache.put("girlNames", "oihana"))
             .thenCompose(r3 -> multimapCache.get("girlNames"))
             .thenAccept(names -> {
                          if(names.contains("marie"))
                              System.out.println("Marie is a girl name");

                           if(names.contains("oihana"))
                              System.out.println("Oihana is a girl name");
                        });

这个代码的输出如下:

Marie is a girl name
Oihana is a girl name

CompletableFuture<Collection<V>> get (K key)

异步返回与此多映射缓存中与键关联的值的视图集合(若有)。对检索到的集合的任何更改都不会更改此多映射缓存中的值。当此方法返回空集合时,这意味着未找到密钥。

CompletableFuture<Boolean> remove (K key)

异步从多映射缓存中删除与密钥关联的条目(如果存在)。

CompletableFuture<Boolean> remove (K key, V value)

异步从多映射缓存中删除键值对(如果存在的话)。

CompletableFuture<Void> remove (Predicate<? super V> p)

异步方法。删除与给定 predicate 匹配的每个值。

CompletableFuture<Boolean> containsKey (K key)

如果此多映射包含密钥,则返回 true 的异步。

CompletableFuture<Boolean> 包含Value (V 值)

如果此多映射在至少一个键中包含值,则返回 true 的异步。

CompletableFuture<Boolean> 包含Entry (K key, V value)

如果此多映射至少包含一个键值对,则返回 true。

CompletableFuture<Long> size()

异步返回多映射缓存中键值对数。它不会返回不同的键数。

布尔值 supportsDuplicates ()

如果多映射缓存支持重复,则返回 true 的异步。这意味着 multimap 的内容可以是 'a' ['1', '1', '2']。现在,此方法总是返回 false,因为尚不支持重复。给定值的存在由 'equals' 和 'hashcode' 方法的合同决定。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.