Class IndexSetBasic<A extends Comparable<A>>

    • Field Detail

      • tailEntryLastMaxDepth

        protected int tailEntryLastMaxDepth
        Последняя максимальная глубина поиска
      • tailEntryCurrentDepth

        protected int tailEntryCurrentDepth
        Текущаяя глубина поиска tailEntry
      • tailEntryStarted

        protected long tailEntryStarted
        Время (нс) начало поиска (enter in try/finally && tailEntryCurrentDeep = 1)
      • tailEntryFinished

        protected long tailEntryFinished
        Время (нс) конца поиска (exit in try/finally && tailEntryCurrentDeep = 1)
      • tailEntryScanSize

        protected int tailEntryScanSize
        Размер сканированных данных
      • tailEntryGetCall

        protected int tailEntryGetCall
        Кол-во чтений (get(idx))
      • headEntryLastMaxDepth

        protected int headEntryLastMaxDepth
        Последняя максимальная глубина поиска
      • headEntryCurrentDepth

        protected int headEntryCurrentDepth
        Текущаяя глубина поиска headEntry
      • headEntryStarted

        protected long headEntryStarted
        Время (нс) начало поиска (enter in try/finally && headEntryCurrentDeep = 1)
      • headEntryFinished

        protected long headEntryFinished
        Время (нс) конца поиска (exit in try/finally amp;& headEntryCurrentDeep = 1)
      • headEntryScanSize

        protected int headEntryScanSize
        Размер сканированных данных
      • headEntryGetCall

        protected int headEntryGetCall
        Кол-во чтений (get(idx))
    • Constructor Detail

      • IndexSetBasic

        public IndexSetBasic()
        Конструктор
    • Method Detail

      • createList

        protected List createList()
        Создание списка который будет хранить значения
        Returns:
        список для хранения значений
      • size

        public int size()
        Возвращает кол-во элементов
        Specified by:
        size in interface IndexSet<A extends Comparable<A>>
        Returns:
        кол-во элементов
      • get

        public A get​(int idx)
        Возвращает элемент по его индексу
        Specified by:
        get in interface IndexSet<A extends Comparable<A>>
        Parameters:
        idx - индекс
        Returns:
        элемент
      • exists

        public boolean exists​(A a)
        Проверка наличие элемента
        Specified by:
        exists in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - элемент
        Returns:
        true - элемент присуствует
      • findIdexOf

        protected int findIdexOf​(A a)
        Поиск индекса элемента
        Parameters:
        a - элемент
        Returns:
        индекс или -1
      • indexOfScanRange

        protected int indexOfScanRange()
      • findIdexOfInRange

        protected int findIdexOfInRange​(A a,
                                        int begin,
                                        int endex)
      • indexOf

        public int indexOf​(A a)
        Поиск индекс элемента
        Specified by:
        indexOf in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - элемент
        Returns:
        индекс или -1
      • each

        public void each​(Consumer<A> iter)
        Обход всех элементов
        Specified by:
        each in interface IndexSet<A extends Comparable<A>>
        Parameters:
        iter - потребитель
      • eachByIndex

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

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

        public void eachByValue​(A begin,
                                boolean incBegin,
                                A end,
                                boolean incEnd,
                                BiConsumer<Integer,​A> consumer)
        Description copied from interface: IndexSet
        Обход элементов в списке
        Specified by:
        eachByValue in interface IndexSet<A extends Comparable<A>>
        Parameters:
        begin - С какого элемента начать
        incBegin - Включить элемент в список
        end - До какого элемента продолжить
        incEnd - Включить конечный элемент в список
        consumer - Функция принимающая значения:
        fn(index,item):any ,где:
        index - индекс элемента в списке
        item - элемент в списке
      • add

        public int add​(A a)
        Description copied from interface: IndexSet
        Добавление элемента в список
        Specified by:
        add in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - элемент
        Returns:
        индекс элемента
      • append

        public IndexSet<A> append​(A... items)
        Description copied from interface: IndexSet
        Добавление элемента в список
        Specified by:
        append in interface IndexSet<A extends Comparable<A>>
        Parameters:
        items - элементы
        Returns:
        self ссылка
      • minMax

        public Pair<A,​A> minMax()
        Description copied from interface: IndexSet
        Возвращает диапазон (мин/макс) значений
        Specified by:
        minMax in interface IndexSet<A extends Comparable<A>>
        Returns:
        диапазон или null, если список пуст
      • min

        public A min()
        Description copied from interface: IndexSet
        Возвращат минимальное значение
        Specified by:
        min in interface IndexSet<A extends Comparable<A>>
        Returns:
        минимальное значение
      • max

        public A max()
        Description copied from interface: IndexSet
        Возвращат максимальное значение
        Specified by:
        max in interface IndexSet<A extends Comparable<A>>
        Returns:
        максимальное значение
      • add

        public void add​(Iterable<A> adds,
                        BiConsumer<Integer,​A> added)
        Description copied from interface: IndexSet
        Добавление элементов в список
        Specified by:
        add in interface IndexSet<A extends Comparable<A>>
        Parameters:
        adds - элементы
        added - добавленные элементы
      • add

        public void add​(IndexSet<A> adds,
                        BiConsumer<Integer,​A> added)
        Description copied from interface: IndexSet
        Добавление элементов в список
        Specified by:
        add in interface IndexSet<A extends Comparable<A>>
        Parameters:
        adds - элементы
        added - добавленные элементы
      • remove

        public int remove​(A a)
        Description copied from interface: IndexSet
        Удаление элемента
        Specified by:
        remove in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - элемент
        Returns:
        индекс удаленного элемента
      • remove

        public void remove​(Iterable<A> removes,
                           BiConsumer<Integer,​A> removed)
        Description copied from interface: IndexSet
        Удаление элементов из списока
        Specified by:
        remove in interface IndexSet<A extends Comparable<A>>
        Parameters:
        removes - элементы
        removed - удаленные элементы
      • remove

        public void remove​(IndexSet<A> removes,
                           BiConsumer<Integer,​A> removed)
        Description copied from interface: IndexSet
        Удаление элементов из списока
        Specified by:
        remove in interface IndexSet<A extends Comparable<A>>
        Parameters:
        removes - элементы
        removed - удаленные элементы
      • removeByIndex

        public A removeByIndex​(int idx)
        Description copied from interface: IndexSet
        Удаляет элемент по его индексу
        Specified by:
        removeByIndex in interface IndexSet<A extends Comparable<A>>
        Parameters:
        idx - индекс
        Returns:
        Удаленный элемент
      • tailEntry

        public Pair<Integer,​A> tailEntry​(A a,
                                               boolean strong,
                                               int beginIndex,
                                               int endExIndex)
        Description copied from interface: IndexSet
        Поиск хвоста, где искомое_значения >= a
        Specified by:
        tailEntry in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - значение с которым производится сравнение
        strong - строгое сравнение:
        true - искомое_значения > a
        false - искомое_значения >= a
        beginIndex - начальный индекс с которого производить поиск
        endExIndex - коненый индекс, по который исключительно производить поиск
        Returns:
        начало хвоста или null
      • headEntry

        public Pair<Integer,​A> headEntry​(A a,
                                               boolean strong,
                                               int beginIndex,
                                               int endExIndex)
        Description copied from interface: IndexSet
        Поиск головы, где искомое_значения <= a
        Specified by:
        headEntry in interface IndexSet<A extends Comparable<A>>
        Parameters:
        a - значение с которым производится сравнение
        strong - строгое сравнение:
        true - искомое_значения < a
        false - искомое_значения <= a
        beginIndex - начальный индекс с которого производить поиск
        endExIndex - коненый индекс, по который исключительно производить поиск
        Returns:
        конец головы или null