- java.lang.Object
-
- xyz.cofe.collection.IndexSetBasic<A>
-
- Type Parameters:
A- Тип элементов в множестве
- All Implemented Interfaces:
IndexSet<A>,GetReadLock,GetWriteLock,ReadWriteLockSupport,LongScn<IndexSetBasic<A>,Void>,Scn<IndexSetBasic<A>,Long,Void>
public class IndexSetBasic<A extends Comparable<A>> extends Object implements IndexSet<A>, ReadWriteLockSupport, LongScn<IndexSetBasic<A>,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 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intadd(A a)Добавление элемента в списокvoidadd(Iterable<A> adds, BiConsumer<Integer,A> added)Добавление элементов в списокvoidadd(IndexSet<A> adds, BiConsumer<Integer,A> added)Добавление элементов в списокIndexSet<A>append(A... items)Добавление элемента в списокvoidclear()Удалениеprotected Comparator<A>comparator()protected ListcreateList()Создание списка который будет хранить значенияvoideach(Consumer<A> iter)Обход всех элементовvoideachByIndex(int begin, int endEx, BiConsumer<Integer,A> consumer)Обход элементов с получением индексаvoideachByValue(A begin, boolean incBegin, A end, boolean incEnd, BiConsumer<Integer,A> consumer)Обход элементов в спискеvoideachByValue(A begin, boolean incBegin, A end, boolean incEnd, QuadConsumer<Integer,A,Integer,Integer> consumer)Обход элементов в спискеbooleanexists(A a)Проверка наличие элементаprotected intfindIdexOf(A a)Поиск индекса элементаprotected intfindIdexOfInRange(A a, int begin, int endex)Aget(int idx)Возвращает элемент по его индексуPair<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(Iterable<A> removes, BiConsumer<Integer,A> removed)Удаление элементов из списокаvoidremove(IndexSet<A> removes, BiConsumer<Integer,A> removed)Удаление элементов из списокаAremoveByIndex(int idx)Удаляет элемент по его индексуListenersHelper<ScnListener<IndexSetBasic<A>,Long,Void>,ScnEvent<IndexSetBasic<A>,Long,Void>>scnListenerHelper()Возвращает помощника издателя для поддержи событийintsize()Возвращает кол-во элементовprotected SortInsert<List,A>sortInsert()Stream<Pair<A,Integer>>stream()Создание стримаPair<Integer,A>tailEntry(A a, boolean strong, int beginIndex, int endExIndex)Поиск хвоста, где искомое_значения >= a-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface xyz.cofe.ecolls.ReadWriteLockSupport
getReadLock, getWriteLock, readLock, readLock, writeLock, writeLock
-
Methods inherited from interface xyz.cofe.scn.Scn
addScnChangedListener, addScnChangedListener, fireScnChanged, fireScnChanged, getScnChangedListeners, hasScnChangedListener, onScn, removeAllScnChangedListeners, removeScnChangedListener, scn, scn
-
-
-
-
Field Detail
-
list
protected final List<A extends Comparable<A>> list
-
minValue
protected A extends Comparable<A> minValue
-
maxValue
protected A extends Comparable<A> 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))
-
-
Method Detail
-
scnListenerHelper
public ListenersHelper<ScnListener<IndexSetBasic<A>,Long,Void>,ScnEvent<IndexSetBasic<A>,Long,Void>> scnListenerHelper()
Возвращает помощника издателя для поддержи событий- Specified by:
scnListenerHelperin interfaceScn<IndexSetBasic<A extends Comparable<A>>,Long,Void>- Returns:
- помощник издателя
-
createList
protected List createList()
Создание списка который будет хранить значения- Returns:
- список для хранения значений
-
size
public int size()
Возвращает кол-во элементов- Specified by:
sizein interfaceIndexSet<A extends Comparable<A>>- Returns:
- кол-во элементов
-
get
public A get(int idx)
Возвращает элемент по его индексу- Specified by:
getin interfaceIndexSet<A extends Comparable<A>>- Parameters:
idx- индекс- Returns:
- элемент
-
exists
public boolean exists(A a)
Проверка наличие элемента- Specified by:
existsin interfaceIndexSet<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:
indexOfin interfaceIndexSet<A extends Comparable<A>>- Parameters:
a- элемент- Returns:
- индекс или -1
-
each
public void each(Consumer<A> iter)
Обход всех элементов- Specified by:
eachin interfaceIndexSet<A extends Comparable<A>>- Parameters:
iter- потребитель
-
stream
public Stream<Pair<A,Integer>> stream()
Создание стрима- Specified by:
streamin interfaceIndexSet<A extends Comparable<A>>- Returns:
- стрим элементов
-
eachByIndex
public void eachByIndex(int begin, int endEx, BiConsumer<Integer,A> consumer)Обход элементов с получением индекса- Specified by:
eachByIndexin interfaceIndexSet<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:
eachByValuein interfaceIndexSet<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:
eachByValuein interfaceIndexSet<A extends Comparable<A>>- Parameters:
begin- С какого элемента начатьincBegin- Включить элемент в списокend- До какого элемента продолжитьincEnd- Включить конечный элемент в списокconsumer- Функция принимающая значения:
fn(index,item):any,где:
index - индекс элемента в списке
item - элемент в списке
-
comparator
protected Comparator<A> comparator()
-
sortInsert
protected SortInsert<List,A> sortInsert()
-
add
public int add(A a)
Description copied from interface:IndexSetДобавление элемента в список- Specified by:
addin interfaceIndexSet<A extends Comparable<A>>- Parameters:
a- элемент- Returns:
- индекс элемента
-
append
public IndexSet<A> append(A... items)
Description copied from interface:IndexSetДобавление элемента в список- Specified by:
appendin interfaceIndexSet<A extends Comparable<A>>- Parameters:
items- элементы- Returns:
- self ссылка
-
minMax
public Pair<A,A> minMax()
Description copied from interface:IndexSetВозвращает диапазон (мин/макс) значений- Specified by:
minMaxin interfaceIndexSet<A extends Comparable<A>>- Returns:
- диапазон или null, если список пуст
-
min
public A min()
Description copied from interface:IndexSetВозвращат минимальное значение- Specified by:
minin interfaceIndexSet<A extends Comparable<A>>- Returns:
- минимальное значение
-
max
public A max()
Description copied from interface:IndexSetВозвращат максимальное значение- Specified by:
maxin interfaceIndexSet<A extends Comparable<A>>- Returns:
- максимальное значение
-
add
public void add(Iterable<A> adds, BiConsumer<Integer,A> added)
Description copied from interface:IndexSetДобавление элементов в список- Specified by:
addin interfaceIndexSet<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:
addin interfaceIndexSet<A extends Comparable<A>>- Parameters:
adds- элементыadded- добавленные элементы
-
remove
public int remove(A a)
Description copied from interface:IndexSetУдаление элемента- Specified by:
removein interfaceIndexSet<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:
removein interfaceIndexSet<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:
removein interfaceIndexSet<A extends Comparable<A>>- Parameters:
removes- элементыremoved- удаленные элементы
-
removeByIndex
public A removeByIndex(int idx)
Description copied from interface:IndexSetУдаляет элемент по его индексу- Specified by:
removeByIndexin interfaceIndexSet<A extends Comparable<A>>- Parameters:
idx- индекс- Returns:
- Удаленный элемент
-
clear
public void clear()
Description copied from interface:IndexSetУдаление- Specified by:
clearin interfaceIndexSet<A extends Comparable<A>>
-
tailEntry
public Pair<Integer,A> tailEntry(A a, boolean strong, int beginIndex, int endExIndex)
Description copied from interface:IndexSetПоиск хвоста, где искомое_значения >= a- Specified by:
tailEntryin interfaceIndexSet<A extends Comparable<A>>- Parameters:
a- значение с которым производится сравнениеstrong- строгое сравнение:
true - искомое_значения > a
false - искомое_значения >= abeginIndex- начальный индекс с которого производить поиск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:
headEntryin interfaceIndexSet<A extends Comparable<A>>- Parameters:
a- значение с которым производится сравнениеstrong- строгое сравнение:
true - искомое_значения < a
false - искомое_значения <= abeginIndex- начальный индекс с которого производить поискendExIndex- коненый индекс, по который исключительно производить поиск- Returns:
- конец головы или null
-
-