- java.lang.Object
-
- org.hsqldb.lib.DoubleLongIndex
-
- All Implemented Interfaces:
LongLookup
public final class DoubleLongIndex extends java.lang.Object implements LongLookup
Maintains an orderedlong->long
lookup table, consisting of two columns, one for keys, the other for values. Equal keys are allowed.The table is sorted on key column.
findXXX() methods return the array index into the list pair containing a matching key or value, or -1 if not found.
Based on org.hsqldb.lib.DoubleIntIndex
- Since:
- 1.8.0
- Author:
- Fred Toussi (fredt@users dot sourceforge.net)
-
-
Constructor Summary
Constructors Constructor Description DoubleLongIndex(int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
add(long key, long value)
boolean
addUnsorted(long key, long value)
boolean
addUnsorted(LongLookup other)
void
clear()
boolean
compactLookupAsIntervals()
void
copyTo(DoubleLongIndex other)
LongLookup
duplicate()
int
findFirstEqualKeyIndex(long value)
int
findFirstGreaterEqualKeyIndex(long value)
int
findFirstGreaterEqualSlotIndex(long value)
This method is similar to findFirstGreaterEqualKeyIndex(int) but returns the index of the empty row past the end of the array if the search value is larger than all the values / keys in the searched column.long
getLongKey(int i)
long
getLongValue(int i)
long
getTotalValues()
long
lookup(long key)
long
lookup(long key, long def)
void
setLongValue(int i, long value)
Modifies an existing pair.void
setSize(int newSize)
int
size()
void
sort()
-
-
-
Method Detail
-
getLongKey
public long getLongKey(int i)
- Specified by:
getLongKey
in interfaceLongLookup
-
getLongValue
public long getLongValue(int i)
- Specified by:
getLongValue
in interfaceLongLookup
-
setLongValue
public void setLongValue(int i, long value)
Modifies an existing pair.- Specified by:
setLongValue
in interfaceLongLookup
- Parameters:
i
- the indexvalue
- the value
-
size
public int size()
- Specified by:
size
in interfaceLongLookup
-
getTotalValues
public long getTotalValues()
- Specified by:
getTotalValues
in interfaceLongLookup
-
setSize
public void setSize(int newSize)
-
addUnsorted
public boolean addUnsorted(long key, long value)
- Specified by:
addUnsorted
in interfaceLongLookup
-
add
public int add(long key, long value)
- Specified by:
add
in interfaceLongLookup
-
lookup
public long lookup(long key) throws java.util.NoSuchElementException
- Specified by:
lookup
in interfaceLongLookup
- Throws:
java.util.NoSuchElementException
-
lookup
public long lookup(long key, long def)
- Specified by:
lookup
in interfaceLongLookup
-
clear
public void clear()
- Specified by:
clear
in interfaceLongLookup
-
duplicate
public LongLookup duplicate()
- Specified by:
duplicate
in interfaceLongLookup
-
findFirstGreaterEqualKeyIndex
public int findFirstGreaterEqualKeyIndex(long value)
- Parameters:
value
- the value- Returns:
- the index
-
findFirstEqualKeyIndex
public int findFirstEqualKeyIndex(long value)
- Parameters:
value
- the value- Returns:
- the index
-
findFirstGreaterEqualSlotIndex
public int findFirstGreaterEqualSlotIndex(long value)
This method is similar to findFirstGreaterEqualKeyIndex(int) but returns the index of the empty row past the end of the array if the search value is larger than all the values / keys in the searched column.- Parameters:
value
- the value- Returns:
- the index
-
compactLookupAsIntervals
public boolean compactLookupAsIntervals()
- Specified by:
compactLookupAsIntervals
in interfaceLongLookup
-
sort
public void sort()
- Specified by:
sort
in interfaceLongLookup
-
copyTo
public void copyTo(DoubleLongIndex other)
-
addUnsorted
public boolean addUnsorted(LongLookup other)
- Specified by:
addUnsorted
in interfaceLongLookup
-
-