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
public final class Index<K,V> extends Object
A bi-directional map in which keys and values must be unique.
- Since:
- 4.0.0
-
Method Summary
Modifier and Type Method Description static <K, V> @NonNull Index<K,V>
create(@NonNull Function<? super V,? extends K> keyFunction, @NonNull List<V> constants)
Creates an index map.static <K, V> @NonNull Index<K,V>
create(@NonNull Function<? super V,? extends K> keyFunction, @NonNull V @NonNull ... values)
Creates an index map.static <K, V extends Enum<V>>
@NonNull Index<K,V>create(Class<V> type, @NonNull Function<? super V,? extends K> keyFunction)
Creates an index map.static <K, V extends Enum<V>>
@NonNull Index<K,V>create(Class<V> type, @NonNull Function<? super V,? extends K> keyFunction, @NonNull V @NonNull ... values)
Creates an index map.@Nullable K
key(@NonNull V value)
Gets the key for a value.@NonNull Set<K>
keys()
Gets the keys.@Nullable V
value(@NonNull K key)
Gets a value by its key.@NonNull Set<V>
values()
Gets the keys.
-
Method Details
-
create
public static <K, V extends Enum<V>> @NonNull Index<K,V> create(Class<V> type, @NonNull 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 public static <K, V extends Enum<V>> @NonNull Index<K,V> create(Class<V> type, @NonNull Function<? super V,? extends K> keyFunction, @NonNull V @NonNull ... 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 public static <K, V> @NonNull Index<K,V> create(@NonNull Function<? super V,? extends K> keyFunction, @NonNull V @NonNull ... 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
public static <K, V> @NonNull Index<K,V> create(@NonNull Function<? super V,? extends K> keyFunction, @NonNull 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
-
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
-