Class ImListLinkedBase<A>

java.lang.Object
xyz.cofe.coll.im.ImListLinkedBase<A>
All Implemented Interfaces:
Iterable<A>, Append<ImList<A>,A>, Countable, Emptable<ImList<A>>, Filter<ImList<A>,A>, FMap<A>, FoldLeft<A>, FoldRight<A>, ForEach<A>, ImList<A>, MAP<A>, One<ImList<A>,A>, PositionalRead<A>, Prepend<ImList<A>,A>, Reverse<ImList<A>>, Tail<ImList<A>,A>
Direct Known Subclasses:
ImListLinked

public abstract class ImListLinkedBase<A> extends Object implements Prepend<ImList<A>,A>, Countable, ForEach<A>, Emptable<ImList<A>>, One<ImList<A>,A>, PositionalRead<A>, Append<ImList<A>,A>, Tail<ImList<A>,A>, Reverse<ImList<A>>, Filter<ImList<A>,A>, MAP<A>, FMap<A>, ImList<A>
  • Constructor Details

  • Method Details

    • isNil

      protected boolean isNil()
      Проверка, что текущий элемент - это конец списка
      Returns:
      true - конец и не содержит значения
    • selfConstructor

      protected abstract <B> ImListLinkedBase<B> selfConstructor(B value, ImListLinkedBase<B> next)
      Данный метод должен быть переопределен в дочерних классах
      Parameters:
      value - значение
      next - ссылка на следующий элемент
      Returns:
      список
    • empty

      public ImListLinkedBase<A> empty()
      Description copied from interface: Emptable
      Создает пустую коллекцию
      Specified by:
      empty in interface Emptable<A>
      Returns:
      пустая коллекция
    • one

      public ImListLinkedBase<A> one(A a)
      Description copied from interface: One
      Создание коллекции с один элементом
      Specified by:
      one in interface One<ImList<A>,A>
      Parameters:
      a - элемент коллекции
      Returns:
      коллекция с одним элементом
    • prepend

      public ImListLinkedBase<A> prepend(A a)
      Description copied from interface: Prepend
      Добавление элемента в начало списка
      Specified by:
      prepend in interface Prepend<ImList<A>,A>
      Parameters:
      a - элемент
      Returns:
      список с добавленным элементом
    • size

      public int size()
      Description copied from interface: Countable
      Возвращает кол-во элементов
      Specified by:
      size in interface Countable
      Returns:
      кол-во элементов
    • each

      public void each(Consumer<A> consumer)
      Description copied from interface: ForEach
      Обход списка
      Specified by:
      each in interface ForEach<A>
      Parameters:
      consumer - функция принимающая элемент
    • get

      public Optional<A> get(int index)
      Description copied from interface: PositionalRead
      Чтение элемента списка
      Specified by:
      get in interface PositionalRead<A>
      Parameters:
      index - индекс элемента
      Returns:
      элемент
    • head

      public Optional<A> head()
      Description copied from interface: PositionalRead
      Чтение "головы" / первого элемента
      Specified by:
      head in interface PositionalRead<A>
      Returns:
      элемент
    • last

      public Optional<A> last()
      Description copied from interface: PositionalRead
      Чтение последнего элемента
      Specified by:
      last in interface PositionalRead<A>
      Returns:
      элемент
    • reverse

      public ImListLinkedBase<A> reverse()
      Description copied from interface: Reverse
      Разворот списка
      Specified by:
      reverse in interface ImList<A>
      Specified by:
      reverse in interface Reverse<A>
      Returns:
      список с противоположным ходом элементов
    • append

      public ImListLinkedBase<A> append(A a)
      Description copied from interface: Append
      Добавить в конец списка
      Specified by:
      append in interface Append<ImList<A>,A>
      Parameters:
      a - добавляемый элемент
      Returns:
      список с добавленным элементом
    • tail

      public ImListLinkedBase<A> tail()
      Description copied from interface: Tail
      Возвращение списка без первого элемента
      Specified by:
      tail in interface Tail<ImList<A>,A>
      Returns:
      хвост списка - список без первого элемента
    • foldLeft

      public <B> B foldLeft(B init, BiFunction<B,A,B> fold)
      Description copied from interface: FoldLeft
      Свертка от начала к концу списка
      Specified by:
      foldLeft in interface FoldLeft<A>
      Specified by:
      foldLeft in interface PositionalRead<A>
      Type Parameters:
      B - тип результата
      Parameters:
      init - начальное значение
      fold - функция свертки
      Returns:
      результат свертки
    • foldRight

      public <B> B foldRight(B init, BiFunction<B,A,B> fold)
      Description copied from interface: FoldRight
      Свертка списка от конца к началу
      Specified by:
      foldRight in interface FoldRight<A>
      Specified by:
      foldRight in interface PositionalRead<A>
      Type Parameters:
      B - тип результата
      Parameters:
      init - начальное значение
      fold - функция свертки
      Returns:
      результат свертки
    • map

      public <B> ImList<B> map(Function<A,B> mapper)
      Description copied from interface: MAP
      Отображение элементов коллекции
      Specified by:
      map in interface MAP<A>
      Type Parameters:
      B - тип элемента коллекции
      Parameters:
      mapper - функция отображения
      Returns:
      коллекция с отображением
    • fmap

      public <B> ImList<B> fmap(Function<A,PositionalRead<B>> fmapper)
      Description copied from interface: FMap
      Отображение коллекции
      Specified by:
      fmap in interface FMap<A>
      Type Parameters:
      B - тип элементов в коллекции
      Parameters:
      fmapper - функция отображения
      Returns:
      отображенная коллекция
    • split

      public <B> FMap.Split<B,A> split(Function<A,FMap.Split<B,A>> mapper)
      Description copied from interface: FMap
      Фильтрация коллекции на две: отфильтрованную
      Specified by:
      split in interface FMap<A>
      Type Parameters:
      B - тип второй коллекции
      Parameters:
      mapper - функция фильтрации
      Returns:
      две разнотипные коллекции
    • append

      public ImList<A> append(PositionalRead<? extends A> values)
      Description copied from interface: Append
      Добавить значения в конец
      Specified by:
      append in interface Append<ImList<A>,A>
      Parameters:
      values - добавляемые элементы
      Returns:
      список с добавленными элементами
    • prepend

      public ImList<A> prepend(PositionalRead<? extends A> values)
      Description copied from interface: Prepend
      Добавление элементов в начало списка
      Specified by:
      prepend in interface Prepend<ImList<A>,A>
      Parameters:
      values - элементы
      Returns:
      список с добавленными элементами
    • prependUnordered

      public ImList<A> prependUnordered(PositionalRead<A> values)
    • iterator

      public Iterator<A> iterator()
      Specified by:
      iterator in interface Iterable<A>
    • toImList

      public ImList<A> toImList()
      Description copied from interface: PositionalRead
      Возвращает иммутабельный список
      Specified by:
      toImList in interface PositionalRead<A>
      Returns:
      иммутабельный список