Interface IndexSet<A extends Comparable<A>>

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

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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int add​(A a)
      Добавление элемента в список
      void add​(Iterable<A> adds, BiConsumer<Integer,​A> added)
      Добавление элементов в список
      void add​(IndexSet<A> adds, BiConsumer<Integer,​A> added)
      Добавление элементов в список
      IndexSet<A> append​(A... a)
      Добавление элемента в список
      void clear()
      Удаление
      void each​(Consumer<A> iter)
      Обход элементов в списке
      void eachByIndex​(int begin, int endEx, BiConsumer<Integer,​A> consumer)
      Обход элементов в списке
      void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, BiConsumer<Integer,​A> consumer)
      Обход элементов в списке
      void eachByValue​(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<Integer,​A,​Integer,​Integer> consumer)
      Обход элементов в списке
      boolean exists​(A a)
      Проверка наличия элемента в списке
      A get​(int idx)
      Получение элемента по его индексу
      Pair<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​(Iterable<A> removes, BiConsumer<Integer,​A> removed)
      Удаление элементов из списока
      void remove​(IndexSet<A> removes, BiConsumer<Integer,​A> removed)
      Удаление элементов из списока
      A removeByIndex​(int idx)
      Удаляет элемент по его индексу
      int size()
      Кол-во элементов
      Stream<Pair<A,​Integer>> stream()
      Получение потока/stream-а значений
      Pair<Integer,​A> tailEntry​(A a, boolean strong, int begin, int endEx)
      Поиск хвоста, где искомое_значения >= a
    • Method Detail

      • 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<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<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​(Consumer<A> iter)
        Обход элементов в списке
        Parameters:
        iter - итератор
      • stream

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

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

        void eachByValue​(A begin,
                         boolean incBegin,
                         A end,
                         boolean incEnd,
                         QuadConsumer<Integer,​A,​Integer,​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,
                         BiConsumer<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​(Iterable<A> adds,
                 BiConsumer<Integer,​A> added)
        Добавление элементов в список
        Parameters:
        adds - элементы
        added - добавленные элементы
      • add

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

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

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

        void remove​(IndexSet<A> removes,
                    BiConsumer<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:
        максимальное значение