Interface BiMap<K,​V>

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      V forcePut​(K key, V value)
      An alternate form of put that silently removes any existing entry with the value value before proceeding with the put(K, V) operation.
      BiMap<V,​K> inverse()
      Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key.
      V put​(K key, V value)
      void putAll​(java.util.Map<? extends K,​? extends V> map)
      java.util.Set<V> values()
      • Methods inherited from interface java.util.Map

        clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, remove, replace, replace, replaceAll, size
    • Method Detail

      • put

        V put​(K key,
              V value)
        Specified by:
        put in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalArgumentException - if the given value is already bound to a different key in this bimap. The bimap will remain unmodified in this event. To avoid this exception, call forcePut(K, V) instead.
      • forcePut

        V forcePut​(K key,
                   V value)
        An alternate form of put that silently removes any existing entry with the value value before proceeding with the put(K, V) operation. If the bimap previously contained the provided key-value mapping, this method has no effect.

        Note that a successful call to this method could cause the size of the bimap to increase by one, stay the same, or even decrease by one.

        Warning: If an existing entry with this value is removed, the key for that entry is discarded and not returned.

        Parameters:
        key - the key with which the specified value is to be associated
        value - the value to be associated with the specified key
        Returns:
        the value which was previously associated with the key, which may be null, or null if there was no previous entry
      • putAll

        void putAll​(java.util.Map<? extends K,​? extends V> map)

        Warning: the results of calling this method may vary depending on the iteration order of map.

        Specified by:
        putAll in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalArgumentException - if an attempt to put any entry fails. Note that some map entries may have been added to the bimap before the exception was thrown.
      • values

        java.util.Set<V> values()

        Because a bimap has unique values, this method returns a Set, instead of the Collection specified in the Map interface.

        Specified by:
        values in interface java.util.Map<K,​V>
      • inverse

        BiMap<V,​K> inverse()
        Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key. The two bimaps are backed by the same data; any changes to one will appear in the other.

        Note:There is no guaranteed correspondence between the iteration order of a bimap and that of its inverse.

        Returns:
        the inverse view of this bimap