- 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 ([email protected])
-
-
Field Summary
Fields Modifier and Type Field Description protected int
headEntryCurrentDepth
Текущаяя глубина поиска headEntryprotected long
headEntryFinished
Время (нс) конца поиска (exit in try/finally amp;& headEntryCurrentDeep = 1)protected int
headEntryGetCall
Кол-во чтений (get(idx))protected int
headEntryLastMaxDepth
Последняя максимальная глубина поискаprotected int
headEntryScanSize
Размер сканированных данныхprotected long
headEntryStarted
Время (нс) начало поиска (enter in try/finally && headEntryCurrentDeep = 1)protected List<A>
list
protected A
maxValue
protected A
minValue
protected int
tailEntryCurrentDepth
Текущаяя глубина поиска tailEntryprotected long
tailEntryFinished
Время (нс) конца поиска (exit in try/finally && tailEntryCurrentDeep = 1)protected int
tailEntryGetCall
Кол-во чтений (get(idx))protected int
tailEntryLastMaxDepth
Последняя максимальная глубина поискаprotected int
tailEntryScanSize
Размер сканированных данныхprotected long
tailEntryStarted
Время (нс) начало поиска (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 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... items)
Добавление элемента в списокvoid
clear()
Удалениеprotected Comparator<A>
comparator()
protected List
createList()
Создание списка который будет хранить значения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)
Проверка наличие элементаprotected int
findIdexOf(A a)
Поиск индекса элементаprotected int
findIdexOfInRange(A a, int begin, int endex)
A
get(int idx)
Возвращает элемент по его индексуPair<Integer,A>
headEntry(A a, boolean strong, int beginIndex, int endExIndex)
Поиск головы, где искомое_значения <= aint
indexOf(A a)
Поиск индекс элементаprotected int
indexOfScanRange()
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)
Удаляет элемент по его индексуListenersHelper<ScnListener<IndexSetBasic<A>,Long,Void>,ScnEvent<IndexSetBasic<A>,Long,Void>>
scnListenerHelper()
Возвращает помощника издателя для поддержи событийint
size()
Возвращает кол-во элементов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:
scnListenerHelper
in interfaceScn<IndexSetBasic<A extends Comparable<A>>,Long,Void>
- Returns:
- помощник издателя
-
createList
protected List createList()
Создание списка который будет хранить значения- Returns:
- список для хранения значений
-
size
public int size()
Возвращает кол-во элементов- Specified by:
size
in interfaceIndexSet<A extends Comparable<A>>
- Returns:
- кол-во элементов
-
get
public A get(int idx)
Возвращает элемент по его индексу- Specified by:
get
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
idx
- индекс- Returns:
- элемент
-
exists
public boolean exists(A a)
Проверка наличие элемента- Specified by:
exists
in 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:
indexOf
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
a
- элемент- Returns:
- индекс или -1
-
each
public void each(Consumer<A> iter)
Обход всех элементов- Specified by:
each
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
iter
- потребитель
-
stream
public Stream<Pair<A,Integer>> stream()
Создание стрима- Specified by:
stream
in interfaceIndexSet<A extends Comparable<A>>
- Returns:
- стрим элементов
-
eachByIndex
public void eachByIndex(int begin, int endEx, BiConsumer<Integer,A> consumer)
Обход элементов с получением индекса- Specified by:
eachByIndex
in 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:
eachByValue
in 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:
eachByValue
in 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:
add
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
a
- элемент- Returns:
- индекс элемента
-
append
public IndexSet<A> append(A... items)
Description copied from interface:IndexSet
Добавление элемента в список- Specified by:
append
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
items
- элементы- Returns:
- self ссылка
-
minMax
public Pair<A,A> minMax()
Description copied from interface:IndexSet
Возвращает диапазон (мин/макс) значений- Specified by:
minMax
in interfaceIndexSet<A extends Comparable<A>>
- Returns:
- диапазон или null, если список пуст
-
min
public A min()
Description copied from interface:IndexSet
Возвращат минимальное значение- Specified by:
min
in interfaceIndexSet<A extends Comparable<A>>
- Returns:
- минимальное значение
-
max
public A max()
Description copied from interface:IndexSet
Возвращат максимальное значение- Specified by:
max
in interfaceIndexSet<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 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:
add
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
adds
- элементыadded
- добавленные элементы
-
remove
public int remove(A a)
Description copied from interface:IndexSet
Удаление элемента- Specified by:
remove
in 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:
remove
in 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:
remove
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
removes
- элементыremoved
- удаленные элементы
-
removeByIndex
public A removeByIndex(int idx)
Description copied from interface:IndexSet
Удаляет элемент по его индексу- Specified by:
removeByIndex
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
idx
- индекс- Returns:
- Удаленный элемент
-
clear
public void clear()
Description copied from interface:IndexSet
Удаление- Specified by:
clear
in 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:
tailEntry
in 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:
headEntry
in interfaceIndexSet<A extends Comparable<A>>
- Parameters:
a
- значение с которым производится сравнениеstrong
- строгое сравнение:
true - искомое_значения < a
false - искомое_значения <= abeginIndex
- начальный индекс с которого производить поискendExIndex
- коненый индекс, по который исключительно производить поиск- Returns:
- конец головы или null
-
-