Package xyz.cofe.iter

Interface Eterable<A>

Type Parameters:
A - тип элементов в итераторе
All Superinterfaces:
java.lang.Iterable<A>
All Known Subinterfaces:
EventList<E>, EventSet<E>
All Known Implementing Classes:
ArrayIterable, BasicEventList, BasicEventSet, BiProductIterable, ClassSet, EmptyIterable, EterableProxy, FilterIterable, ImTreeWalk.Walk, LimitIterable, MapIterable, SingleIterable, UnionIterable

public interface Eterable<A>
extends java.lang.Iterable<A>
Расширение стандартного итератора
  • Method Summary

    Modifier and Type Method Description
    default long count()
    Посчет кол-ва элементов
    static <A> Eterable<A> empty()
    "Пустой" Итератор
    default Eterable<A> filter​(java.util.function.Predicate<A> filter)
    Фильтрация исходных данных
    default java.util.Optional<A> first()
    Возвращает первый элемент
    default Eterable<A> limit​(long limit)
    Ограничение исходного набора
    default <B> Eterable<B> map​(java.util.function.Function<A,​B> map)
    Отображения одного набора данных на другой
    default Eterable<A> notNull()
    Фильтрация исходного набора - удаление null значений
    static <A> Eterable<A> of​(A... a)
    Итератор по массиву
    static <A> Eterable<A> of​(java.lang.Iterable<? extends A> a)
    Создает итератор
    default <B> Eterable<Pair<A,​B>> product​(java.lang.Iterable<B> source)
    Декартово произведение
    default <B,​ C,​ D,​ E> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, java.lang.Iterable<D> source3, java.lang.Iterable<E> source4, QuintConsumer<A,​B,​C,​D,​E> consumer)
    Декартово произведение
    default <B,​ C,​ D> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, java.lang.Iterable<D> source3, QuadConsumer<A,​B,​C,​D> consumer)
    Декартово произведение
    default <B,​ C> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, TripleConsumer<A,​B,​C> consumer)
    Декартово произведение
    default <B> Eterable<A> product​(java.lang.Iterable<B> source, java.util.function.BiConsumer<A,​B> consumer)
    Декартово произведение
    default <R> R reduce​(R initial, java.util.function.BiFunction<R,​A,​R> reducer)
    Свертка значений
    static <A> Eterable<A> single​(A a)
    Создает итератор по единичному значению
    default java.util.List<A> toList()
    Преобразование в список
    static <A> TreeIterBuilder<A> tree​(A root, java.util.function.Function<A,​java.lang.Iterable<? extends A>> follow)
    Создание итератора по дереву
    default Eterable<A> union​(java.lang.Iterable<A>... iter)
    Присоединение данных к исходным
    default Eterable<A> union​(java.lang.Iterable<java.lang.Iterable<A>> iter)
    Присоединение данных к исходным

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • single

      static <A> Eterable<A> single​(A a)
      Создает итератор по единичному значению
      Type Parameters:
      A - тип значения
      Parameters:
      a - значение
      Returns:
      итератор
    • of

      static <A> Eterable<A> of​(A... a)
      Итератор по массиву
      Type Parameters:
      A - тип элементов в массиве
      Parameters:
      a - массив
      Returns:
      итератор
    • of

      static <A> Eterable<A> of​(java.lang.Iterable<? extends A> a)
      Создает итератор
      Type Parameters:
      A - тип элементов
      Parameters:
      a - исходный итератор
      Returns:
      итератор
    • empty

      static <A> Eterable<A> empty()
      "Пустой" Итератор
      Type Parameters:
      A - тип элементов
      Returns:
      итератор
    • filter

      default Eterable<A> filter​(java.util.function.Predicate<A> filter)
      Фильтрация исходных данных
      Parameters:
      filter - фильтр
      Returns:
      итератор
    • notNull

      default Eterable<A> notNull()
      Фильтрация исходного набора - удаление null значений
      Returns:
      итератор
    • union

      default Eterable<A> union​(java.lang.Iterable<A>... iter)
      Присоединение данных к исходным
      Parameters:
      iter - присоединяемые данные
      Returns:
      итератор
    • union

      default Eterable<A> union​(java.lang.Iterable<java.lang.Iterable<A>> iter)
      Присоединение данных к исходным
      Parameters:
      iter - присоединяемые данные
      Returns:
      итератор
    • map

      default <B> Eterable<B> map​(java.util.function.Function<A,​B> map)
      Отображения одного набора данных на другой
      Type Parameters:
      B - целевой тип данных
      Parameters:
      map - фунция отображения
      Returns:
      итератор
    • limit

      default Eterable<A> limit​(long limit)
      Ограничение исходного набора
      Parameters:
      limit - максимаьлное кол-во выбираемых значений
      Returns:
      кол-во
    • product

      default <B> Eterable<Pair<A,​B>> product​(java.lang.Iterable<B> source)
      Декартово произведение
      Type Parameters:
      B - Тип дополнительного множества
      Parameters:
      source - множество на которое производиться умножение
      Returns:
      Декартово произведение
    • product

      default <B> Eterable<A> product​(java.lang.Iterable<B> source, java.util.function.BiConsumer<A,​B> consumer)
      Декартово произведение
      Type Parameters:
      B - Тип дополнительного множества
      Parameters:
      source - множество на которое производиться умножение
      consumer - сторона которая принимает произведение
      Returns:
      Исходный итератор (self ссылка)
    • product

      default <B,​ C> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, TripleConsumer<A,​B,​C> consumer)
      Декартово произведение
      Type Parameters:
      B - Тип дополнительного множества
      C - Тип дополнительного множества
      Parameters:
      source1 - множество на которое производиться умножение
      source2 - множество на которое производиться умножение
      consumer - сторона которая принимает произведение
      Returns:
      Исходный итератор (self ссылка)
    • product

      default <B,​ C,​ D> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, java.lang.Iterable<D> source3, QuadConsumer<A,​B,​C,​D> consumer)
      Декартово произведение
      Type Parameters:
      B - Тип дополнительного множества
      C - Тип дополнительного множества
      D - Тип дополнительного множества
      Parameters:
      source1 - множество на которое производиться умножение
      source2 - множество на которое производиться умножение
      source3 - множество на которое производиться умножение
      consumer - сторона которая принимает произведение
      Returns:
      Исходный итератор (self ссылка)
    • product

      default <B,​ C,​ D,​ E> Eterable<A> product​(java.lang.Iterable<B> source1, java.lang.Iterable<C> source2, java.lang.Iterable<D> source3, java.lang.Iterable<E> source4, QuintConsumer<A,​B,​C,​D,​E> consumer)
      Декартово произведение
      Type Parameters:
      B - Тип дополнительного множества
      C - Тип дополнительного множества
      D - Тип дополнительного множества
      E - Тип дополнительного множества
      Parameters:
      source1 - множество на которое производиться умножение
      source2 - множество на которое производиться умножение
      source3 - множество на которое производиться умножение
      source4 - множество на которое производиться умножение
      consumer - сторона которая принимает произведение
      Returns:
      Исходный итератор (self ссылка)
    • first

      default java.util.Optional<A> first()
      Возвращает первый элемент
      Returns:
      первый элемент
    • toList

      default java.util.List<A> toList()
      Преобразование в список
      Returns:
      список
    • tree

      static <A> TreeIterBuilder<A> tree​(A root, java.util.function.Function<A,​java.lang.Iterable<? extends A>> follow)
      Создание итератора по дереву
      Type Parameters:
      A - тип узла дерева
      Parameters:
      root - корень
      follow - следование
      Returns:
      создание итератора
    • count

      default long count()
      Посчет кол-ва элементов
      Returns:
      кол-во элементов
    • reduce

      default <R> R reduce​(R initial, java.util.function.BiFunction<R,​A,​R> reducer)
      Свертка значений
      Type Parameters:
      R - Тип результата
      Parameters:
      initial - начальное значение
      reducer - функция светки
      Returns:
      результат