Java many to many association map

前端 未结 7 1041
难免孤独
难免孤独 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 {
        private final ImmutableSetMultimap kToV;
        private final ImmutableSetMultimap vToK;
    
        public ImmutableBiMultimap (SetMultimap keyToValueMap) {
            kToV = ImmutableSetMultimap.copyOf(keyToValueMap);
    
            SetMultimap valueToKeyMap = HashMultimap.create();
            for (Entry entry : kToV.entries()) {
                valueToKeyMap.put(entry.getValue(), entry.getKey());
            }
    
            vToK = ImmutableSetMultimap.copyOf(valueToKeyMap);
        }
    
        public ImmutableSet getValuesForKey(K key) {
            return kToV.get(key);
        }
    
        public ImmutableSet getKeysForValue(V value) {
            return vToK.get(value);
        }
    }
    

提交回复
热议问题