public final class SparseLongTokenList extends Object implements MutableLongTokenSequence
MutableLongTokenSequence
which stores
data sparsely. That is, zero values are not stored. This is a much
more efficient mechanism when the majority of values are zero.Constructor and Description |
---|
SparseLongTokenList(int initialCapacity)
Creates a new empty list.
|
Modifier and Type | Method and Description |
---|---|
void |
append(long value)
Appends the specified long to this sequence.
|
void |
append(long value,
int count)
Appends the specified long to this sequence
multiple times.
|
void |
append(TokenSequence data)
Appends all tokens in the specified sequence to this
sequence.
|
void |
append(TokenSequence data,
int start,
int length)
Appends a subsequence of tokens in the specified sequence
to this sequence.
|
void |
append(TokenValued value)
Appends the specified token value to this sequence.
|
void |
append(TokenValued value,
long count)
Appends the specified token value to this sequence
multiple times.
|
void |
appendNull()
Append a null value to this sequence.
|
void |
appendNull(int count)
Append a null value to this sequence.
|
void |
appendZero()
Appends a zero value to this sequence.
|
void |
appendZero(int count)
Appends the specified number of zero values to this sequence.
|
int |
compareElement(int absoluteIndex,
TokenValued value)
Compares the value of the specified token to the token at which
the given port is positioned.
|
int |
compareElements(int lhsAbsoluteIndex,
int rhsAbsoluteIndex)
Compares the values of the tokens at the specified
positions.
|
void |
ensureCanonical()
Ensures that the internal representation is in a canonical form such
that it can be read safely by multiple threads.
|
void |
fillValue(int start,
int length,
TokenValued value)
Sets the tokens in the specified subsequence to the given value.
|
BigDecimal |
getBigDecimal(int index)
Gets the value of the specified token as
a
BigDecimal . |
double |
getDouble(int index)
Gets the value of the specified token as
a
double . |
ElementComparator |
getElementComparator(TokenOrder sortOrder)
Gets an
ElementComparator for this sequence using
the specified ordering. |
float |
getFloat(int index)
Gets the value of the specified token as
a
float . |
long |
getLong(int index)
Get the value of the specified token as
a
long . |
long |
getModificationCount()
Returns the current modification count.
|
LongValued |
getToken(int index)
Gets the value at the specified position.
|
LongSettable |
getTokenSetter(int index)
Returns a mutator for the given index.
|
ScalarTokenType |
getType()
Gets the data type of the tokens in the sequence.
|
void |
getValues(int start,
BigDecimal[] values,
boolean[] nulls,
int offset,
int length)
Gets the values and null indicators for a range of tokens as
BigDecimal objects. |
void |
getValues(int start,
double[] values,
boolean[] nulls,
int offset,
int length)
Gets the values and null indicators for a range of tokens as
double s. |
void |
getValues(int start,
float[] values,
boolean[] nulls,
int offset,
int length)
Gets the values and null indicators for a range of tokens as
float s. |
void |
getValues(int start,
long[] values,
boolean[] nulls,
int offset,
int length)
Gets the values and null indicators for a range of tokens as
long s. |
int |
hashCode(int absoluteIndex)
Gets the hash code for the token at the specified position.
|
boolean |
isNull()
Returns whether all elements are null.
|
boolean |
isNull(int absoluteIndex)
Indicates whether the specified token has a null value.
|
boolean |
isZero(int absoluteIndex)
Indicates whether the specified token has a zero value.
|
LongValuedIterator |
newValueIterator()
Creates an iterator over the non-null values of this sequence.
|
void |
reset()
Removes all elements from the sequence.
|
void |
setLong(int absoluteIndex,
long value)
Sets the token at the specified position to the given value.
|
void |
setNull(int absoluteIndex)
Sets the token at the specified position to be null valued.
|
void |
setNull(int start,
int length)
Sets the tokens in the specified subsequence to be null valued.
|
void |
setValue(int absoluteIndex,
TokenValued value)
Sets the token at the specified position to the given value.
|
void |
setValues(int start,
TokenSequence values,
int offset,
int length)
Sets the tokens in the specified subsequence of the array
to the corresponding values from a subsequence of the given source
sequence.
|
void |
setZero(int absoluteIndex)
Sets the token at the specified position to be zero valued.
|
void |
setZero(int start,
int length)
Sets the tokens in the specified subsequence to be zero valued.
|
int |
size()
Gets the length of the sequence.
|
String |
toString() |
String |
toString(int absoluteIndex)
Gets the string representation of the token at the specified
position.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getType, isNull, isZero
compareElement, compareElements, getElementComparator, hashCode, isNull, size, toString
ensureCanonical, getModificationCount
appendNull, appendNull, appendZero, appendZero, fillValue, reset, setNull, setNull, setValue, setValues, setZero, setZero
append, append, append, append
public SparseLongTokenList(int initialCapacity)
initialCapacity
- initial storage capacity of the listpublic void append(long value)
MutableLongTokenSequence
append
in interface MutableLongTokenSequence
value
- the value to append.public void append(long value, int count)
MutableLongTokenSequence
append
in interface MutableLongTokenSequence
value
- the value to append.count
- the number of copies to append.public void setLong(int absoluteIndex, long value)
MutableLongTokenSequence
setLong
in interface MutableLongTokenSequence
absoluteIndex
- the position to modifyvalue
- the new valuepublic long getLong(int index)
LongTokenSequence
long
.getLong
in interface LongTokenSequence
index
- the position of the token in the sequence0
is returned.public float getFloat(int index)
FloatTokenSequence
float
.getFloat
in interface FloatTokenSequence
index
- the position of the token in the sequenceFloat.NaN
is returned.public double getDouble(int index)
DoubleTokenSequence
double
.getDouble
in interface DoubleTokenSequence
index
- the position of the token in the sequenceDouble.NaN
is returned.public BigDecimal getBigDecimal(int index)
NumericTokenSequence
BigDecimal
.getBigDecimal
in interface NumericTokenSequence
index
- the position of the token in the sequencenull
is returned.public LongValued getToken(int index)
TokenSequence
getToken
in interface DoubleTokenSequence
getToken
in interface FloatTokenSequence
getToken
in interface LongTokenSequence
getToken
in interface NumericTokenSequence
getToken
in interface ScalarTokenSequence
getToken
in interface TokenSequence
index
- the index of the tokenpublic LongSettable getTokenSetter(int index)
MutableTokenSequence
getTokenSetter
in interface MutableTokenSequence
getTokenSetter
in interface MutableLongTokenSequence
getTokenSetter
in interface MutableScalarTokenSequence
index
- the positionpublic void getValues(int start, long[] values, boolean[] nulls, int offset, int length)
LongTokenSequence
long
s.getValues
in interface LongTokenSequence
start
- the starting index of the rangevalues
- an array into which to place element valuesnulls
- an array into which to place null indicator valuesoffset
- the starting offset into the target arrays. That is,
elements[offset]
and nulls[offset]
will get the
value and null indicator respectively of the token at position
start
, and so on.length
- number of tokens to getpublic void getValues(int start, double[] values, boolean[] nulls, int offset, int length)
DoubleTokenSequence
double
s.getValues
in interface DoubleTokenSequence
start
- the starting index of the rangevalues
- an array into which to place element valuesnulls
- an array into which to place null indicator valuesoffset
- the starting offset into the target arrays. That is,
elements[offset]
and nulls[offset]
will get the
value and null indicator respectively of the token at position
start
, and so on.length
- number of tokens to getpublic void getValues(int start, BigDecimal[] values, boolean[] nulls, int offset, int length)
NumericTokenSequence
BigDecimal
objects.getValues
in interface NumericTokenSequence
start
- the starting index of the rangevalues
- an array into which to place element valuesnulls
- an array into which to place null indicator valuesoffset
- the starting offset into the target arrays. That is,
elements[offset]
and nulls[offset]
will get the
value and null indicator respectively of the token at position
start
, and so on.length
- number of tokens to getpublic void getValues(int start, float[] values, boolean[] nulls, int offset, int length)
FloatTokenSequence
float
s.getValues
in interface FloatTokenSequence
start
- the starting index of the rangevalues
- an array into which to place element valuesnulls
- an array into which to place null indicator valuesoffset
- the starting offset into the target arrays. That is,
elements[offset]
and nulls[offset]
will get the
value and null indicator respectively of the token at position
start
, and so on.length
- number of tokens to getpublic LongValuedIterator newValueIterator()
TokenSequence
newValueIterator
in interface DoubleTokenSequence
newValueIterator
in interface FloatTokenSequence
newValueIterator
in interface LongTokenSequence
newValueIterator
in interface NumericTokenSequence
newValueIterator
in interface ScalarTokenSequence
newValueIterator
in interface TokenSequence
public final boolean isNull()
ScalarTokenSequence
isNull
in interface ScalarTokenSequence
public final long getModificationCount()
MutableScalarTokenSequence
getModificationCount
in interface MutableScalarTokenSequence
public final int size()
TokenSequence
size
in interface TokenSequence
public final void setZero(int absoluteIndex)
MutableTokenSequence
setZero
in interface MutableTokenSequence
absoluteIndex
- the position of the token in the arraypublic void setZero(int start, int length)
MutableTokenSequence
setZero
in interface MutableTokenSequence
start
- the starting index of the subsequence in the arraylength
- the length of the subsequencepublic final void setNull(int absoluteIndex)
MutableTokenSequence
setNull
in interface MutableTokenSequence
absoluteIndex
- the position of the token in the arraypublic final void setNull(int start, int length)
MutableTokenSequence
setNull
in interface MutableTokenSequence
start
- the starting index of the subsequence in the arraylength
- the length of the subsequencepublic ScalarTokenType getType()
ScalarTokenSequence
getType
in interface ScalarTokenSequence
getType
in interface ScalarTyped
getType
in interface TokenTyped
public final boolean isNull(int absoluteIndex)
TokenSequence
isNull
in interface TokenSequence
absoluteIndex
- the index of the tokentrue
if the element is null,
false
otherwisepublic final boolean isZero(int absoluteIndex)
ScalarTokenSequence
isZero
in interface ScalarTokenSequence
absoluteIndex
- the index of the tokentrue
if the element is zero,
false
otherwisepublic final int compareElement(int absoluteIndex, TokenValued value)
TokenSequence
compareElement
in interface TokenSequence
absoluteIndex
- the index of the tokenvalue
- the input port positioned at the token for
comparison0
if the values are equal,
1
if the sequence token value is greater,
-1
if the sequence token value is lesser.
A null value is greater than any other non-null;
two null values compare as equal.public final int compareElements(int lhsAbsoluteIndex, int rhsAbsoluteIndex)
TokenSequence
compareElements
in interface TokenSequence
lhsAbsoluteIndex
- the index of the left-hand elementrhsAbsoluteIndex
- the index of the right-hand element0
if the values are equal,
1
if the left hand value is greater,
-1
if the left hand value is lesser.
A null value is greater than any other non-null;
two null values compare as equal.public final ElementComparator getElementComparator(TokenOrder sortOrder)
TokenSequence
ElementComparator
for this sequence using
the specified ordering.getElementComparator
in interface TokenSequence
sortOrder
- the desired orderingElementComparator
for this sequence.public final int hashCode(int absoluteIndex)
TokenSequence
hashCode
in interface TokenSequence
absoluteIndex
- the index of the tokenpublic final String toString(int absoluteIndex)
TokenSequence
toString
in interface TokenSequence
absoluteIndex
- the index of the tokenpublic final void appendNull()
appendNull
in interface MutableTokenSequence
public final void appendNull(int count)
appendNull
in interface MutableTokenSequence
count
- the number of null values to appendpublic final void appendZero()
MutableTokenSequence
appendZero
in interface MutableTokenSequence
public void appendZero(int count)
MutableTokenSequence
appendZero
in interface MutableTokenSequence
count
- the number of zero values to appendpublic final void reset()
MutableTokenSequence
reset
in interface MutableTokenSequence
public final void append(TokenValued value)
TokenAppendable
The data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.
append
in interface TokenAppendable
value
- the token value to appendpublic final void append(TokenValued value, long count)
TokenAppendable
The data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.
append
in interface TokenAppendable
value
- the token value to appendcount
- the number of copies to appendpublic final void setValue(int absoluteIndex, TokenValued value)
MutableTokenSequence
setValue
in interface MutableTokenSequence
absoluteIndex
- the position of the token in the arrayvalue
- the value to which to set the token. This value
must be of an appropriate type for the array.public final void fillValue(int start, int length, TokenValued value)
MutableTokenSequence
fillValue
in interface MutableTokenSequence
start
- the starting index of the subsequence in the arraylength
- the length of the subsequencevalue
- the value to which to set the tokens. This value
must be of an appropriate type for the arraypublic final void setValues(int start, TokenSequence values, int offset, int length)
MutableTokenSequence
setValues
in interface MutableTokenSequence
start
- the starting index of the subsequence in the arrayvalues
- the source sequence. This sequence must be
of an appropriate type for the array.offset
- the starting index in the source sequence.
Corresponding values will be taken relative to this position.
That is, the value of the token at position offset
in
values
will be assigned to the token at position
start
, and so on.length
- the number of tokens to copypublic final void append(TokenSequence data)
TokenAppendable
The data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.
append
in interface TokenAppendable
data
- the sequence to appendpublic final void append(TokenSequence data, int start, int length)
TokenAppendable
The data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.
append
in interface TokenAppendable
data
- the sequence containing tokens to appendstart
- the starting index of the subsequence in the sourcelength
- the length of the subsequencepublic final void ensureCanonical()
MutableScalarTokenSequence
ensureCanonical
in interface MutableScalarTokenSequence
Copyright © 2016 Actian Corporation. All rights reserved.