Module xyz.cofe.ecolls
Package xyz.cofe.collection
Class IndexSetBasic<A extends java.lang.Comparable<A>>
java.lang.Object
xyz.cofe.collection.IndexSetBasic<A>
- Type Parameters:
A- Тип элементов в множестве
- All Implemented Interfaces:
IndexSet<A>,GetReadLock,GetWriteLock,ReadWriteLockSupport,LongScn<IndexSetBasic<A>,java.lang.Void>,Scn<IndexSetBasic<A>,java.lang.Long,java.lang.Void>
public class IndexSetBasic<A extends java.lang.Comparable<A>> extends java.lang.Object implements IndexSet<A>, ReadWriteLockSupport, LongScn<IndexSetBasic<A>,java.lang.Void>
Список содежащий уникальные элементы, отсортированные в порядке возрастания
- Author:
- Kamnev Georgiy (nt.gocha@gmail.com)
-
Field Summary
Fields Modifier and Type Field Description protected intheadEntryCurrentDepthТекущаяя глубина поиска headEntryprotected longheadEntryFinishedВремя (нс) конца поиска (exit in try/finally amp;& headEntryCurrentDeep = 1)protected intheadEntryGetCallКол-во чтений (get(idx))protected intheadEntryLastMaxDepthПоследняя максимальная глубина поискаprotected intheadEntryScanSizeРазмер сканированных данныхprotected longheadEntryStartedВремя (нс) начало поиска (enter in try/finally && headEntryCurrentDeep = 1)protected java.util.List<A>listprotected AmaxValueprotected AminValueprotected inttailEntryCurrentDepthТекущаяя глубина поиска tailEntryprotected longtailEntryFinishedВремя (нс) конца поиска (exit in try/finally && tailEntryCurrentDeep = 1)protected inttailEntryGetCallКол-во чтений (get(idx))protected inttailEntryLastMaxDepthПоследняя максимальная глубина поискаprotected inttailEntryScanSizeРазмер сканированных данныхprotected longtailEntryStartedВремя (нс) начало поиска (enter in try/finally && tailEntryCurrentDeep = 1) -
Constructor Summary
Constructors Constructor Description IndexSetBasic()Конструктор -
Method Summary
Modifier and Type Method Description intadd(A a)Добавление элемента в списокvoidadd(java.lang.Iterable<A> adds, java.util.function.BiConsumer<java.lang.Integer,A> added)Добавление элементов в списокvoidadd(IndexSet<A> adds, java.util.function.BiConsumer<java.lang.Integer,A> added)Добавление элементов в списокIndexSet<A>append(A... items)Добавление элемента в списокvoidclear()Удалениеprotected java.util.Comparator<A>comparator()protected java.util.ListcreateList()Создание списка который будет хранить значенияvoideach(java.util.function.Consumer<A> iter)Обход всех элементовvoideachByIndex(int begin, int endEx, java.util.function.BiConsumer<java.lang.Integer,A> consumer)Обход элементов с получением индексаvoideachByValue(A begin, boolean incBegin, A end, boolean incEnd, java.util.function.BiConsumer<java.lang.Integer,A> consumer)Обход элементов в спискеvoideachByValue(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<java.lang.Integer,A,java.lang.Integer,java.lang.Integer> consumer)Обход элементов в спискеbooleanexists(A a)Проверка наличие элементаprotected intfindIdexOf(A a)Поиск индекса элементаprotected intfindIdexOfInRange(A a, int begin, int endex)Aget(int idx)Возвращает элемент по его индексуPair<java.lang.Integer,A>headEntry(A a, boolean strong, int beginIndex, int endExIndex)Поиск головы, где искомое_значения <= aintindexOf(A a)Поиск индекс элементаprotected intindexOfScanRange()Amax()Возвращат максимальное значениеAmin()Возвращат минимальное значениеPair<A,A>minMax()Возвращает диапазон (мин/макс) значенийintremove(A a)Удаление элементаvoidremove(java.lang.Iterable<A> removes, java.util.function.BiConsumer<java.lang.Integer,A> removed)Удаление элементов из списокаvoidremove(IndexSet<A> removes, java.util.function.BiConsumer<java.lang.Integer,A> removed)Удаление элементов из списокаAremoveByIndex(int idx)Удаляет элемент по его индексуintsize()Возвращает кол-во элементовprotected SortInsert<java.util.List,A>sortInsert()java.util.stream.Stream<Pair<A,java.lang.Integer>>stream()Создание стримаPair<java.lang.Integer,A>tailEntry(A a, boolean strong, int beginIndex, int endExIndex)Поиск хвоста, где искомое_значения >= aMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface xyz.cofe.ecolls.ReadWriteLockSupport
getReadLock, getWriteLock, readLock, readLock, writeLock, writeLockMethods inherited from interface xyz.cofe.scn.Scn
addScnChangedListener, addScnChangedListener, fireScnChanged, fireScnChanged, getScnChangedListeners, hasScnChangedListener, onScn, removeAllScnChangedListeners, removeScnChangedListener, scn, scn
-
Field Details
-
list
-
minValue
-
maxValue
-
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 Details
-
IndexSetBasic
public IndexSetBasic()Конструктор
-
-
Method Details
-
createList
protected java.util.List createList()Создание списка который будет хранить значения- Returns:
- список для хранения значений
-
size
public int size()Возвращает кол-во элементов -
get
Возвращает элемент по его индексу -
exists
Проверка наличие элемента -
findIdexOf
Поиск индекса элемента- Parameters:
a- элемент- Returns:
- индекс или -1
-
indexOfScanRange
protected int indexOfScanRange() -
findIdexOfInRange
-
indexOf
Поиск индекс элемента -
each
Обход всех элементов -
stream
Создание стрима -
eachByIndex
public void eachByIndex(int begin, int endEx, java.util.function.BiConsumer<java.lang.Integer,A> consumer)Обход элементов с получением индекса- Specified by:
eachByIndexin interfaceIndexSet<A extends java.lang.Comparable<A>>- Parameters:
begin- С какого индекса начатьendEx- По какой исключительно закнчитьconsumer- Функция fn(index,item):any принимающая значения
-
eachByValue
public void eachByValue(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<java.lang.Integer,A,java.lang.Integer,java.lang.Integer> consumer)Description copied from interface:IndexSetОбход элементов в списке- Specified by:
eachByValuein interfaceIndexSet<A extends java.lang.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, java.util.function.BiConsumer<java.lang.Integer,A> consumer)Description copied from interface:IndexSetОбход элементов в списке- Specified by:
eachByValuein interfaceIndexSet<A extends java.lang.Comparable<A>>- Parameters:
begin- С какого элемента начатьincBegin- Включить элемент в списокend- До какого элемента продолжитьincEnd- Включить конечный элемент в списокconsumer- Функция принимающая значения:
fn(index,item):any,где:
index - индекс элемента в списке
item - элемент в списке
-
comparator
-
sortInsert
-
add
Description copied from interface:IndexSetДобавление элемента в список -
append
Description copied from interface:IndexSetДобавление элемента в список -
minMax
Description copied from interface:IndexSetВозвращает диапазон (мин/макс) значений -
min
Description copied from interface:IndexSetВозвращат минимальное значение -
max
Description copied from interface:IndexSetВозвращат максимальное значение -
add
public void add(java.lang.Iterable<A> adds, java.util.function.BiConsumer<java.lang.Integer,A> added)Description copied from interface:IndexSetДобавление элементов в список -
add
Description copied from interface:IndexSetДобавление элементов в список -
remove
Description copied from interface:IndexSetУдаление элемента -
remove
public void remove(java.lang.Iterable<A> removes, java.util.function.BiConsumer<java.lang.Integer,A> removed)Description copied from interface:IndexSetУдаление элементов из списока -
remove
public void remove(IndexSet<A> removes, java.util.function.BiConsumer<java.lang.Integer,A> removed)Description copied from interface:IndexSetУдаление элементов из списока -
removeByIndex
Description copied from interface:IndexSetУдаляет элемент по его индексу- Specified by:
removeByIndexin interfaceIndexSet<A extends java.lang.Comparable<A>>- Parameters:
idx- индекс- Returns:
- Удаленный элемент
-
clear
public void clear()Description copied from interface:IndexSetУдаление -
tailEntry
Description copied from interface:IndexSetПоиск хвоста, где искомое_значения >= a- Specified by:
tailEntryin interfaceIndexSet<A extends java.lang.Comparable<A>>- Parameters:
a- значение с которым производится сравнениеstrong- строгое сравнение:
true - искомое_значения > a
false - искомое_значения >= abeginIndex- начальный индекс с которого производить поискendExIndex- коненый индекс, по который исключительно производить поиск- Returns:
- начало хвоста или null
-
headEntry
Description copied from interface:IndexSetПоиск головы, где искомое_значения <= a- Specified by:
headEntryin interfaceIndexSet<A extends java.lang.Comparable<A>>- Parameters:
a- значение с которым производится сравнениеstrong- строгое сравнение:
true - искомое_значения < a
false - искомое_значения <= abeginIndex- начальный индекс с которого производить поискendExIndex- коненый индекс, по который исключительно производить поиск- Returns:
- конец головы или null
-