Do we have a MultiBiMap ?

前端 未结 1 830
心在旅途
心在旅途 2020-12-19 07:43

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,

相关标签:
1条回答
  • 2020-12-19 07:55
    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;
        }
    }
    
    0 讨论(0)
提交回复
热议问题