Package net.kyori.adventure.util
Class Index<K,V>
java.lang.Object
net.kyori.adventure.util.Index<K,V>
- Type Parameters:
K
- the key typeV
- the value type
A bi-directional map in which keys and values must be unique.
- Since:
- 4.0.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic <K,
V> @NotNull Index<K, V> Creates an index map.static <K,
V> @NotNull Index<K, V> Creates an index map.Creates an index map.create
(Class<V> type, @NotNull Function<? super V, ? extends K> keyFunction, @NotNull V @NotNull ... values) Creates an index map.Gets the key for a value.Gets a key by its value or returns a fallback key.keyOrThrow
(V value) Gets the key for a value or throws an exception.keys()
Gets the keys.Get an unmodifiable mapping of index entries from key to value.Gets a value by its key.Gets a value by its key or returns a fallback value.valueOrThrow
(K key) Gets a value by its key.values()
Gets the keys.Get an unmodifiable mapping of index entries from value to key.
-
Method Details
-
create
@NotNull public static <K,V extends Enum<V>> @NotNull Index<K,V> create(Class<V> type, @NotNull @NotNull Function<? super V, ? extends K> keyFunction) Creates an index map.- Type Parameters:
K
- the key typeV
- the value type- Parameters:
type
- the value typekeyFunction
- the key function- Returns:
- the key map
- Since:
- 4.0.0
-
create
@SafeVarargs @NotNull public static <K,V extends Enum<V>> @NotNull Index<K,V> create(Class<V> type, @NotNull @NotNull Function<? super V, ? extends K> keyFunction, @NotNull @NotNull V @NotNull ... values) Creates an index map.- Type Parameters:
K
- the key typeV
- the value type- Parameters:
type
- the value typekeyFunction
- the key functionvalues
- the values- Returns:
- the key map
- Since:
- 4.0.0
-
create
@SafeVarargs @NotNull public static <K,V> @NotNull Index<K,V> create(@NotNull @NotNull Function<? super V, ? extends K> keyFunction, @NotNull @NotNull V @NotNull ... values) Creates an index map.- Type Parameters:
K
- the key typeV
- the value type- Parameters:
keyFunction
- the key functionvalues
- the values- Returns:
- the key map
- Since:
- 4.0.0
-
create
@NotNull public static <K,V> @NotNull Index<K,V> create(@NotNull @NotNull Function<? super V, ? extends K> keyFunction, @NotNull @NotNull List<V> constants) Creates an index map.- Type Parameters:
K
- the key typeV
- the value type- Parameters:
keyFunction
- the key functionconstants
- the constants- Returns:
- the key map
- Since:
- 4.0.0
-
keys
Gets the keys.- Returns:
- the keys
- Since:
- 4.0.0
-
key
Gets the key for a value.- Parameters:
value
- the value- Returns:
- the key
- Since:
- 4.0.0
-
keyOrThrow
Gets the key for a value or throws an exception.- Parameters:
value
- the value- Returns:
- the key
- Throws:
NoSuchElementException
- if there is no key for the value- Since:
- 4.11.0
-
keyOr
@Contract("_, null -> null; _, !null -> !null") public K keyOr(@NotNull V value, @Nullable K defaultKey) Gets a key by its value or returns a fallback key.- Parameters:
value
- the valuedefaultKey
- the fallback key- Returns:
- the key
- Since:
- 4.11.0
-
values
Gets the keys.- Returns:
- the keys
- Since:
- 4.0.0
-
value
Gets a value by its key.- Parameters:
key
- the key- Returns:
- the value
- Since:
- 4.0.0
-
valueOrThrow
Gets a value by its key.- Parameters:
key
- the key- Returns:
- the value
- Throws:
NoSuchElementException
- if there is no value for the key- Since:
- 4.11.0
-
valueOr
@Contract("_, null -> null; _, !null -> !null") public V valueOr(@NotNull K key, @Nullable V defaultValue) Gets a value by its key or returns a fallback value.- Parameters:
key
- the keydefaultValue
- the fallback value- Returns:
- the value
- Since:
- 4.11.0
-
keyToValue
Get an unmodifiable mapping of index entries from key to value.- Returns:
- a mapping from key to value in the index
- Since:
- 4.10.0
-
valueToKey
Get an unmodifiable mapping of index entries from value to key.- Returns:
- a mapping from value to key in the index
- Since:
- 4.10.0
-