Class UnmodifiableTrie<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>
    • Constructor Summary

      Constructors 
      Constructor Description
      UnmodifiableTrie​(Trie<K,​? extends V> trie)
      Constructor that wraps (not copies).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      java.util.Comparator<? super K> comparator()  
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()  
      boolean equals​(java.lang.Object obj)  
      K firstKey()
      Gets the first key currently in this map.
      V get​(java.lang.Object key)  
      int hashCode()  
      java.util.SortedMap<K,​V> headMap​(K toKey)  
      boolean isEmpty()  
      java.util.Set<K> keySet()  
      K lastKey()
      Gets the last key currently in this map.
      OrderedMapIterator<K,​V> mapIterator()
      Obtains an OrderedMapIterator over the map.
      K nextKey​(K key)
      Gets the next key after the one specified.
      java.util.SortedMap<K,​V> prefixMap​(K key)
      Returns a view of this Trie of all elements that are prefixed by the given key.
      K previousKey​(K key)
      Gets the previous key before the one specified.
      V put​(K key, V value)
      Note that the return type is Object, rather than V as in the Map interface.
      void putAll​(java.util.Map<? extends K,​? extends V> m)  
      V remove​(java.lang.Object key)  
      int size()  
      java.util.SortedMap<K,​V> subMap​(K fromKey, K toKey)  
      java.util.SortedMap<K,​V> tailMap​(K fromKey)  
      java.lang.String toString()  
      static <K,​V>
      Trie<K,​V>
      unmodifiableTrie​(Trie<K,​? extends V> trie)
      Factory method to create a unmodifiable trie.
      java.util.Collection<V> values()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • UnmodifiableTrie

        public UnmodifiableTrie​(Trie<K,​? extends V> trie)
        Constructor that wraps (not copies).
        Parameters:
        trie - the trie to decorate, must not be null
        Throws:
        java.lang.NullPointerException - if trie is null
    • Method Detail

      • unmodifiableTrie

        public static <K,​V> Trie<K,​V> unmodifiableTrie​(Trie<K,​? extends V> trie)
        Factory method to create a unmodifiable trie.
        Type Parameters:
        K - the key type
        V - the value type
        Parameters:
        trie - the trie to decorate, must not be null
        Returns:
        a new unmodifiable trie
        Throws:
        java.lang.NullPointerException - if trie is null
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
        Specified by:
        entrySet in interface Get<K,​V>
        Specified by:
        entrySet in interface java.util.Map<K,​V>
        Specified by:
        entrySet in interface java.util.SortedMap<K,​V>
        See Also:
        Map.entrySet()
      • keySet

        public java.util.Set<K> keySet()
        Specified by:
        keySet in interface Get<K,​V>
        Specified by:
        keySet in interface java.util.Map<K,​V>
        Specified by:
        keySet in interface java.util.SortedMap<K,​V>
        See Also:
        Map.keySet()
      • values

        public java.util.Collection<V> values()
        Specified by:
        values in interface Get<K,​V>
        Specified by:
        values in interface java.util.Map<K,​V>
        Specified by:
        values in interface java.util.SortedMap<K,​V>
        See Also:
        Map.values()
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<K,​V>
        Specified by:
        clear in interface Put<K,​V>
        See Also:
        Map.clear()
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface Get<K,​V>
        Specified by:
        containsKey in interface java.util.Map<K,​V>
        See Also:
        Map.containsKey(Object)
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface Get<K,​V>
        Specified by:
        containsValue in interface java.util.Map<K,​V>
        See Also:
        Map.containsValue(Object)
      • get

        public V get​(java.lang.Object key)
        Specified by:
        get in interface Get<K,​V>
        Specified by:
        get in interface java.util.Map<K,​V>
        See Also:
        Map.get(Object)
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface Get<K,​V>
        Specified by:
        isEmpty in interface java.util.Map<K,​V>
        See Also:
        Map.isEmpty()
      • put

        public V put​(K key,
                     V value)
        Description copied from interface: Put
        Note that the return type is Object, rather than V as in the Map interface. See the class Javadoc for further info.
        Specified by:
        put in interface java.util.Map<K,​V>
        Specified by:
        put in interface Put<K,​V>
        See Also:
        Map.put(Object, Object)
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> m)
        Specified by:
        putAll in interface java.util.Map<K,​V>
        Specified by:
        putAll in interface Put<K,​V>
        See Also:
        Map.putAll(Map)
      • remove

        public V remove​(java.lang.Object key)
        Specified by:
        remove in interface Get<K,​V>
        Specified by:
        remove in interface java.util.Map<K,​V>
        See Also:
        Map.remove(Object)
      • size

        public int size()
        Specified by:
        size in interface Get<K,​V>
        Specified by:
        size in interface java.util.Map<K,​V>
        See Also:
        Map.size()
      • firstKey

        public K firstKey()
        Description copied from interface: OrderedMap
        Gets the first key currently in this map.
        Specified by:
        firstKey in interface OrderedMap<K,​V>
        Specified by:
        firstKey in interface java.util.SortedMap<K,​V>
        Returns:
        the first key currently in this map
      • headMap

        public java.util.SortedMap<K,​V> headMap​(K toKey)
        Specified by:
        headMap in interface java.util.SortedMap<K,​V>
      • lastKey

        public K lastKey()
        Description copied from interface: OrderedMap
        Gets the last key currently in this map.
        Specified by:
        lastKey in interface OrderedMap<K,​V>
        Specified by:
        lastKey in interface java.util.SortedMap<K,​V>
        Returns:
        the last key currently in this map
      • subMap

        public java.util.SortedMap<K,​V> subMap​(K fromKey,
                                                     K toKey)
        Specified by:
        subMap in interface java.util.SortedMap<K,​V>
      • tailMap

        public java.util.SortedMap<K,​V> tailMap​(K fromKey)
        Specified by:
        tailMap in interface java.util.SortedMap<K,​V>
      • prefixMap

        public java.util.SortedMap<K,​V> prefixMap​(K key)
        Description copied from interface: Trie
        Returns a view of this Trie of all elements that are prefixed by the given key.

        In a Trie with fixed size keys, this is essentially a Map.get(Object) operation.

        For example, if the Trie contains 'Anna', 'Anael', 'Analu', 'Andreas', 'Andrea', 'Andres', and 'Anatole', then a lookup of 'And' would return 'Andreas', 'Andrea', and 'Andres'.

        Specified by:
        prefixMap in interface Trie<K,​V>
        Parameters:
        key - the key used in the search
        Returns:
        a SortedMap view of this Trie with all elements whose key is prefixed by the search key
      • comparator

        public java.util.Comparator<? super K> comparator()
        Specified by:
        comparator in interface java.util.SortedMap<K,​V>
      • mapIterator

        public OrderedMapIterator<K,​V> mapIterator()
        Description copied from interface: OrderedMap
        Obtains an OrderedMapIterator over the map.

        A ordered map iterator is an efficient way of iterating over maps in both directions.

        Specified by:
        mapIterator in interface IterableGet<K,​V>
        Specified by:
        mapIterator in interface OrderedMap<K,​V>
        Returns:
        a map iterator
      • nextKey

        public K nextKey​(K key)
        Description copied from interface: OrderedMap
        Gets the next key after the one specified.
        Specified by:
        nextKey in interface OrderedMap<K,​V>
        Parameters:
        key - the key to search for next from
        Returns:
        the next key, null if no match or at end
      • previousKey

        public K previousKey​(K key)
        Description copied from interface: OrderedMap
        Gets the previous key before the one specified.
        Specified by:
        previousKey in interface OrderedMap<K,​V>
        Parameters:
        key - the key to search for previous from
        Returns:
        the previous key, null if no match or at start
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Map<K,​V>
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface java.util.Map<K,​V>
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object