Class Index<K,​V>

java.lang.Object
net.kyori.adventure.util.Index<K,​V>
Type Parameters:
K - the key type
V - 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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 type
      V - the value type
      Parameters:
      type - the value type
      keyFunction - 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 type
      V - the value type
      Parameters:
      type - the value type
      keyFunction - the key function
      values - 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 type
      V - the value type
      Parameters:
      keyFunction - the key function
      values - 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 type
      V - the value type
      Parameters:
      keyFunction - the key function
      constants - the constants
      Returns:
      the key map
      Since:
      4.0.0
    • keys

      public @NonNull Set<K> keys()
      Gets the keys.
      Returns:
      the keys
      Since:
      4.0.0
    • key

      public @Nullable K key​(@NonNull V value)
      Gets the key for a value.
      Parameters:
      value - the value
      Returns:
      the key
      Since:
      4.0.0
    • values

      public @NonNull Set<V> values()
      Gets the keys.
      Returns:
      the keys
      Since:
      4.0.0
    • value

      public @Nullable V value​(@NonNull K key)
      Gets a value by its key.
      Parameters:
      key - the key
      Returns:
      the value
      Since:
      4.0.0