Class MemorySafeLRUMap<K,​V>

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map<K,​V>, org.apache.commons.collections4.BoundedMap<K,​V>, org.apache.commons.collections4.Get<K,​V>, org.apache.commons.collections4.IterableGet<K,​V>, org.apache.commons.collections4.IterableMap<K,​V>, org.apache.commons.collections4.OrderedMap<K,​V>, org.apache.commons.collections4.Put<K,​V>

    @NotThreadSafe
    public class MemorySafeLRUMap<K,​V>
    extends org.apache.commons.collections4.map.LRUMap<K,​V>
    The only difference between this class and LRUMap is that it handles memory issues via MemoryLimitCalculator.

    Note: this class is not thread safe! see https://github.com/apache/shenyu/issues/3929

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.commons.collections4.map.AbstractLinkedMap

        org.apache.commons.collections4.map.AbstractLinkedMap.EntrySetIterator<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractLinkedMap.KeySetIterator<K extends java.lang.Object>, org.apache.commons.collections4.map.AbstractLinkedMap.LinkEntry<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractLinkedMap.LinkIterator<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractLinkedMap.LinkMapIterator<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractLinkedMap.ValuesIterator<V extends java.lang.Object>
      • Nested classes/interfaces inherited from class org.apache.commons.collections4.map.AbstractHashedMap

        org.apache.commons.collections4.map.AbstractHashedMap.EntrySet<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractHashedMap.HashEntry<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractHashedMap.HashIterator<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractHashedMap.HashMapIterator<K extends java.lang.Object,​V extends java.lang.Object>, org.apache.commons.collections4.map.AbstractHashedMap.KeySet<K extends java.lang.Object>, org.apache.commons.collections4.map.AbstractHashedMap.Values<V extends java.lang.Object>
      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface java.util.Map

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

      • Fields inherited from class org.apache.commons.collections4.map.LRUMap

        DEFAULT_MAX_SIZE
      • Fields inherited from class org.apache.commons.collections4.map.AbstractHashedMap

        DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_THRESHOLD, GETKEY_INVALID, GETVALUE_INVALID, MAXIMUM_CAPACITY, NO_NEXT_ENTRY, NO_PREVIOUS_ENTRY, NULL, REMOVE_INVALID, SETVALUE_INVALID
    • Constructor Summary

      Constructors 
      Constructor Description
      MemorySafeLRUMap​(int maxFreeMemory, int initialSize)  
      MemorySafeLRUMap​(int maxFreeMemory, int initialSize, float loadFactor)  
      MemorySafeLRUMap​(int maxFreeMemory, int initialSize, float loadFactor, boolean scanUntilRemovable)  
      MemorySafeLRUMap​(int maxFreeMemory, java.util.Map<? extends K,​? extends V> map)  
      MemorySafeLRUMap​(int maxFreeMemory, java.util.Map<? extends K,​? extends V> map, boolean scanUntilRemovable)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean isFull()  
      • Methods inherited from class org.apache.commons.collections4.map.LRUMap

        addMapping, clone, doReadObject, doWriteObject, get, get, isScanUntilRemovable, maxSize, moveToMRU, removeLRU, reuseMapping, updateEntry
      • Methods inherited from class org.apache.commons.collections4.map.AbstractLinkedMap

        addEntry, clear, containsValue, createEntry, createEntrySetIterator, createKeySetIterator, createValuesIterator, entryAfter, entryBefore, firstKey, getEntry, getEntry, init, lastKey, mapIterator, nextKey, previousKey, removeEntry
      • Methods inherited from class org.apache.commons.collections4.map.AbstractHashedMap

        calculateNewCapacity, calculateThreshold, checkCapacity, containsKey, convertKey, destroyEntry, ensureCapacity, entryHashCode, entryKey, entryNext, entrySet, entryValue, equals, hash, hashCode, hashIndex, isEmpty, isEqualKey, isEqualValue, keySet, put, putAll, remove, removeMapping, reuseEntry, size, toString, values
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.apache.commons.collections4.Get

        containsKey, containsValue, entrySet, isEmpty, keySet, remove, size, values
      • Methods inherited from interface java.util.Map

        clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
      • Methods inherited from interface org.apache.commons.collections4.Put

        clear, put, putAll
    • Constructor Detail

      • MemorySafeLRUMap

        public MemorySafeLRUMap​(int maxFreeMemory,
                                int initialSize)
      • MemorySafeLRUMap

        public MemorySafeLRUMap​(int maxFreeMemory,
                                int initialSize,
                                float loadFactor)
      • MemorySafeLRUMap

        public MemorySafeLRUMap​(int maxFreeMemory,
                                int initialSize,
                                float loadFactor,
                                boolean scanUntilRemovable)
      • MemorySafeLRUMap

        public MemorySafeLRUMap​(int maxFreeMemory,
                                java.util.Map<? extends K,​? extends V> map)
      • MemorySafeLRUMap

        public MemorySafeLRUMap​(int maxFreeMemory,
                                java.util.Map<? extends K,​? extends V> map,
                                boolean scanUntilRemovable)
    • Method Detail

      • isFull

        public boolean isFull()
        Specified by:
        isFull in interface org.apache.commons.collections4.BoundedMap<K,​V>
        Overrides:
        isFull in class org.apache.commons.collections4.map.LRUMap<K,​V>