Interface IndexSet<A extends java.lang.Comparable<A>>

Type Parameters:
A - Тип элементов в множестве
All Known Implementing Classes:
IndexSetBasic

public interface IndexSet<A extends java.lang.Comparable<A>>
Список содежащий уникальные элементы, отсортированные в порядке возрастания
  • Method Summary

    Modifier and Type Method Description
    int add​(A a)
    Добавление элемента в список
    void add​(java.lang.Iterable<A> adds, java.util.function.BiConsumer<java.lang.Integer,​A> added)
    Добавление элементов в список
    void add​(IndexSet<A> adds, java.util.function.BiConsumer<java.lang.Integer,​A> added)
    Добавление элементов в список
    IndexSet<A> append​(A... a)
    Добавление элемента в список
    void clear()
    Удаление
    void each​(java.util.function.Consumer<A> iter)
    Обход элементов в списке
    void eachByIndex​(int begin, int endEx, java.util.function.BiConsumer<java.lang.Integer,​A> consumer)
    Обход элементов в списке
    void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, java.util.function.BiConsumer<java.lang.Integer,​A> consumer)
    Обход элементов в списке
    void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<java.lang.Integer,​A,​java.lang.Integer,​java.lang.Integer> consumer)
    Обход элементов в списке
    boolean exists​(A a)
    Проверка наличия элемента в списке
    A get​(int idx)
    Получение элемента по его индексу
    Pair<java.lang.Integer,​A> headEntry​(A a, boolean strong, int begin, int endEx)
    Поиск головы, где искомое_значения <= a
    int indexOf​(A a)
    Получение идекса элемента
    A max()
    Возвращат максимальное значение
    A min()
    Возвращат минимальное значение
    Pair<A,​A> minMax()
    Возвращает диапазон (мин/макс) значений
    int remove​(A a)
    Удаление элемента
    void remove​(java.lang.Iterable<A> removes, java.util.function.BiConsumer<java.lang.Integer,​A> removed)
    Удаление элементов из списока
    void remove​(IndexSet<A> removes, java.util.function.BiConsumer<java.lang.Integer,​A> removed)
    Удаление элементов из списока
    A removeByIndex​(int idx)
    Удаляет элемент по его индексу
    int size()
    Кол-во элементов
    java.util.stream.Stream<Pair<A,​java.lang.Integer>> stream()
    Получение потока/stream-а значений
    Pair<java.lang.Integer,​A> tailEntry​(A a, boolean strong, int begin, int endEx)
    Поиск хвоста, где искомое_значения >= a
  • Method Details

    • size

      int size()
      Кол-во элементов
      Returns:
      Кол-во элементов
    • get

      A get​(int idx)
      Получение элемента по его индексу
      Parameters:
      idx - индекс
      Returns:
      Элемент
    • exists

      boolean exists​(A a)
      Проверка наличия элемента в списке
      Parameters:
      a - элемент
      Returns:
      true - существует
    • indexOf

      int indexOf​(A a)
      Получение идекса элемента
      Parameters:
      a - элемент
      Returns:
      индекс (0 и более) или -1 отсуствие
    • tailEntry

      Pair<java.lang.Integer,​A> tailEntry​(A a, boolean strong, int begin, int endEx)
      Поиск хвоста, где искомое_значения >= a
      Parameters:
      a - значение с которым производится сравнение
      strong - строгое сравнение:
      true - искомое_значения > a
      false - искомое_значения >= a
      begin - начальный индекс с которого производить поиск
      endEx - коненый индекс, по который исключительно производить поиск
      Returns:
      начало хвоста или null
    • headEntry

      Pair<java.lang.Integer,​A> headEntry​(A a, boolean strong, int begin, int endEx)
      Поиск головы, где искомое_значения <= a
      Parameters:
      a - значение с которым производится сравнение
      strong - строгое сравнение:
      true - искомое_значения < a
      false - искомое_значения <= a
      begin - начальный индекс с которого производить поиск
      endEx - коненый индекс, по который исключительно производить поиск
      Returns:
      конец головы или null
    • each

      void each​(java.util.function.Consumer<A> iter)
      Обход элементов в списке
      Parameters:
      iter - итератор
    • stream

      java.util.stream.Stream<Pair<A,​java.lang.Integer>> stream()
      Получение потока/stream-а значений
      Returns:
      поток значение/индекс
    • eachByIndex

      void eachByIndex​(int begin, int endEx, java.util.function.BiConsumer<java.lang.Integer,​A> consumer)
      Обход элементов в списке
      Parameters:
      begin - С какого индекса начать
      endEx - По какой исключительно закнчить
      consumer - Функция fn(index,item):any принимающая значения
    • eachByValue

      void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<java.lang.Integer,​A,​java.lang.Integer,​java.lang.Integer> consumer)
      Обход элементов в списке
      Parameters:
      begin - С какого элемента начать
      incBegin - Включить элемент в список
      end - До какого элемента продолжить
      incEnd - Включить конечный элемент в список
      consumer - Функция принимающая значения:
      fn(index,item,visitIndex,visitSize):any ,где:
      index - индекс элемента в списке
      item - элемент в списке
      visitIndex - индекс в выборке
      visitSize - Объем вборки
    • eachByValue

      void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, java.util.function.BiConsumer<java.lang.Integer,​A> consumer)
      Обход элементов в списке
      Parameters:
      begin - С какого элемента начать
      incBegin - Включить элемент в список
      end - До какого элемента продолжить
      incEnd - Включить конечный элемент в список
      consumer - Функция принимающая значения:
      fn(index,item):any ,где:
      index - индекс элемента в списке
      item - элемент в списке
    • add

      int add​(A a)
      Добавление элемента в список
      Parameters:
      a - элемент
      Returns:
      индекс элемента
    • append

      IndexSet<A> append​(A... a)
      Добавление элемента в список
      Parameters:
      a - элементы
      Returns:
      self ссылка
    • add

      void add​(java.lang.Iterable<A> adds, java.util.function.BiConsumer<java.lang.Integer,​A> added)
      Добавление элементов в список
      Parameters:
      adds - элементы
      added - добавленные элементы
    • add

      void add​(IndexSet<A> adds, java.util.function.BiConsumer<java.lang.Integer,​A> added)
      Добавление элементов в список
      Parameters:
      adds - элементы
      added - добавленные элементы
    • remove

      int remove​(A a)
      Удаление элемента
      Parameters:
      a - элемент
      Returns:
      индекс удаленного элемента
    • remove

      void remove​(java.lang.Iterable<A> removes, java.util.function.BiConsumer<java.lang.Integer,​A> removed)
      Удаление элементов из списока
      Parameters:
      removes - элементы
      removed - удаленные элементы
    • remove

      void remove​(IndexSet<A> removes, java.util.function.BiConsumer<java.lang.Integer,​A> removed)
      Удаление элементов из списока
      Parameters:
      removes - элементы
      removed - удаленные элементы
    • removeByIndex

      A removeByIndex​(int idx)
      Удаляет элемент по его индексу
      Parameters:
      idx - индекс
      Returns:
      Удаленный элемент
    • clear

      void clear()
      Удаление
    • minMax

      Pair<A,​A> minMax()
      Возвращает диапазон (мин/макс) значений
      Returns:
      диапазон или null, если список пуст
    • min

      A min()
      Возвращат минимальное значение
      Returns:
      минимальное значение
    • max

      A max()
      Возвращат максимальное значение
      Returns:
      максимальное значение