- All Implemented Interfaces:
public class ReadOnlySegmentAwareMap<K,V> extends AbstractDelegatingMap<K,V>Map implementation that shows a read only view of the provided entry by only allowing entries whose key maps to a given segment using the provided consistent hash.
Any operation that would modify this map will throw an
This map is useful when you don't want to copy an entire map but only need to see entries from the given segments.
Note many operations are not constant time when using this map. The
values()method is not supported as well. Please check\ the method you are using to see if it will perform differently than normally expected.
All Methods Instance Methods Concrete Methods Modifier and Type Method Description
isEmpty()Checks if the provided map is empty.
size()Returns the size of the read only map.
values()NOTE: this method is not supported.
Methods inherited from class org.infinispan.commons.util.AbstractDelegatingMap
clear, compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
protected boolean keyAllowed(Object key)
public boolean containsKey(Object key)
public boolean containsValue(Object value)
public boolean isEmpty()Checks if the provided map is empty. This is done by iterating over all of the keys until it can find a key that maps to a given segment.
This method should always be preferred over checking the size to see if it is empty.
This time complexity for this method between O(1) to O(N).
public int size()Returns the size of the read only map. This is done by iterating over all of the keys counting all that are in the segments.
If you are using this method to verify if the map is empty, you should instead use the
ReadOnlySegmentAwareEntryMap#isEmpty()as it will perform better if the size is only used for this purpose.
This time complexity for this method is always O(N).
public Collection<V> values()NOTE: this method is not supported. Due to the nature of this map, we don't want to copy the underlying value collection. Thus almost any operation will require O(N) and therefore this method is not provided.