Do we have a MultiBiMap ?(我们有 MultiBiMap 吗?)
问题描述
我们现在有 BiMap 和 multiMap 的概念,但是有 multiBiMap 吗?所以我的意思是什么.在 multiMap 中,K 和 V 之间存在一对多关系,单个键可以关联到多个值,因此得名.在双地图中,您有 K,V 对,这是双向的,这意味着您也可以获得 V,K 关系.就像有两个常规地图但同步.我需要一个双向多图,您可以在其中结合这两个概念.
As we now, there is the concept of BiMap and multiMap but is there a multiBiMap ? so what do I mean by this. In multiMap you have one-to-many relationship between K and V, a single key can be associated to multiple value, hence the name. In bi map you have K,V pair which is bi-directional mean you can get V,K relationship as well. Like having a two regular maps but synchronized. I need a bi directional multi map where you combine these two concepts.
推荐答案
import java.util.Set;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.SetMultimap;
public class ManyToMany<K, V> {
private final SetMultimap<K, V> keysToValues = HashMultimap.create();
private final SetMultimap<V, K> valuesToKeys = HashMultimap.create();
public Set<V> getValues(K key) {
return keysToValues.get(key);
}
public Set<K> getKeys(V value) {
return valuesToKeys.get(value);
}
public boolean put(K key, V value) {
return keysToValues.put(key, value) && valuesToKeys.put(value, key);
}
public boolean putAll(K key, Iterable<? extends V> values) {
boolean changed = false;
for (V value : values) {
changed |= put(key, value);
}
return changed;
}
}
这篇关于我们有 MultiBiMap 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:我们有 MultiBiMap 吗?
基础教程推荐
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 降序排序:Java Map 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01