Class Weighers
Weigher and EntryWeigher implementations.- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic <K,V> EntryWeigher <K, V> asEntryWeigher(Weigher<? super V> weigher) A entry weigher backed by the specified weigher.static Weigher<byte[]> A weigher where the value is a byte array and its selector is the number of bytes.static <E> Weigher<? super Collection<E>> A weigher where the value is aCollectionand its selector is the number of elements.static <K,V> EntryWeigher <K, V> A weigher where an entry has a selector of 1.iterable()A weigher where the value is aIterableand its selector is the number of elements.list()A weigher where the value is aListand its selector is the number of elements.map()A weigher where the value is aMapand its selector is the number of entries.set()A weigher where the value is aSetand its selector is the number of elements.static <V> Weigher<V> A weigher where a value has a selector of 1.
-
Method Details
-
asEntryWeigher
A entry weigher backed by the specified weigher. The selector of the value determines the selector of the entry.- Type Parameters:
K- 键类型V- 值类型- Parameters:
weigher- the weigher to be "wrapped" in a entry weigher.- Returns:
- A entry weigher view of the specified weigher.
-
entrySingleton
A weigher where an entry has a selector of 1. A map bounded with this weigher will evict when the number of data-value pairs exceeds the capacity.- Type Parameters:
K- 键类型V- 值类型- Returns:
- A weigher where a value takes one unit of capacity.
-
singleton
A weigher where a value has a selector of 1. A map bounded with this weigher will evict when the number of data-value pairs exceeds the capacity.- Type Parameters:
V- 值类型- Returns:
- A weigher where a value takes one unit of capacity.
-
byteArray
A weigher where the value is a byte array and its selector is the number of bytes. A map bounded with this weigher will evict when the number of bytes exceeds the capacity rather than the number of data-value pairs in the map. This allows for restricting the capacity based on the memory-consumption and is primarily for usage by dedicated caching servers that hold the serialized data.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Returns:
- A weigher where each byte takes one unit of capacity.
-
iterable
A weigher where the value is aIterableand its selector is the number of elements. This weigher only should be used when the alternativecollection()weigher cannot be, as evaluation takes O(n) time. A map bounded with this weigher will evict when the total number of elements exceeds the capacity rather than the number of data-value pairs in the map.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Type Parameters:
E- 元素类型- Returns:
- A weigher where each element takes one unit of capacity.
-
collection
A weigher where the value is aCollectionand its selector is the number of elements. A map bounded with this weigher will evict when the total number of elements exceeds the capacity rather than the number of data-value pairs in the map.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Type Parameters:
E- 元素类型- Returns:
- A weigher where each element takes one unit of capacity.
-
list
A weigher where the value is aListand its selector is the number of elements. A map bounded with this weigher will evict when the total number of elements exceeds the capacity rather than the number of data-value pairs in the map.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Type Parameters:
E- 元素类型- Returns:
- A weigher where each element takes one unit of capacity.
-
set
A weigher where the value is aSetand its selector is the number of elements. A map bounded with this weigher will evict when the total number of elements exceeds the capacity rather than the number of data-value pairs in the map.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Type Parameters:
E- 元素类型- Returns:
- A weigher where each element takes one unit of capacity.
-
map
A weigher where the value is aMapand its selector is the number of entries. A map bounded with this weigher will evict when the total number of entries across all values exceeds the capacity rather than the number of data-value pairs in the map.A value with a selector of 0 will be rejected by the map. If a value with this selector can occur then the caller should eagerly evaluate the value and treat it as a removal operation. Alternatively, a custom weigher may be specified on the map to assign an empty value a positive selector.
- Type Parameters:
K- 键类型V- 值类型- Returns:
- A weigher where each entry takes one unit of capacity.
-