Class LinkedNode<T>

java.lang.Object
org.hibernate.search.util.common.data.impl.LinkedNode<T>
Type Parameters:
T - The type of values stored in the list.
All Implemented Interfaces:
Iterable<T>

public final class LinkedNode<T> extends Object implements Iterable<T>
A very simple, immutable data structure to represent singly linked lists.
  • Field Details

    • value

      public final T value
    • last

      public final LinkedNode<T> last
  • Method Details

    • of

      public static <T> LinkedNode<T> of(T value)
    • of

      @SafeVarargs public static <T> LinkedNode<T> of(T... values)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • iterator

      public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • spliterator

      public Spliterator<T> spliterator()
      Specified by:
      spliterator in interface Iterable<T>
    • stream

      public Stream<T> stream()
    • withHead

      public LinkedNode<T> withHead(T headValue)
    • findAndReverse

      public Optional<LinkedNode<T>> findAndReverse(Predicate<T> valuePredicate)
      Parameters:
      valuePredicate - A predicate to apply to node values.
      Returns:
      An optional containing the path from the found node to the current head, i.e. a reversed list of all values from the first node to match the given predicate to the current head (note: the list is purposely in reversed order compared to this), or an empty optional if no matching value was found.
    • findAndReverse

      public Optional<LinkedNode<T>> findAndReverse(Predicate<T> valuePredicate, LinkedNode<T> head)