Java many to many association map

前端 未结 7 1036
难免孤独
难免孤独 2020-12-16 01:29

I have two classes, ClassA and ClassB, as well as a \"many to many\" AssociationClass. I want a structure that holds the associations

相关标签:
7条回答
  • 2020-12-16 01:53

    Here's my implementation based on guava Multimap:

    public class ImmutableBiMultimap<K, V> {
        private final ImmutableSetMultimap<K, V> kToV;
        private final ImmutableSetMultimap<V, K> vToK;
    
        public ImmutableBiMultimap (SetMultimap<K, V> keyToValueMap) {
            kToV = ImmutableSetMultimap.copyOf(keyToValueMap);
    
            SetMultimap<V, K> valueToKeyMap = HashMultimap.create();
            for (Entry<K, V> entry : kToV.entries()) {
                valueToKeyMap.put(entry.getValue(), entry.getKey());
            }
    
            vToK = ImmutableSetMultimap.copyOf(valueToKeyMap);
        }
    
        public ImmutableSet<V> getValuesForKey(K key) {
            return kToV.get(key);
        }
    
        public ImmutableSet<K> getKeysForValue(V value) {
            return vToK.get(value);
        }
    }
    
    0 讨论(0)
提交回复
热议问题