public abstract class SparseByteArray extends Object implements ReadWriteable, Concatenatable<SparseByteArray,SparseByteArray>
| Modifier and Type | Class and Description | 
|---|---|
| static class  | SparseByteArray.DualEntryAn entry representing the values in two parallel  SparseByteArrays
 at the same index. | 
| static class  | SparseByteArray.EntryAn entry in a  SparseByteArray, consisting of
 an index and value. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected static int | DEFAULT_CAPACITY | 
| int | lengthThe length of the array | 
| Constructor and Description | 
|---|
| SparseByteArray() | 
| Modifier and Type | Method and Description | 
|---|---|
| SparseByteArray | add(SparseByteArray vector)Add the values in the given vector to a copy of
 this array and return the result | 
| SparseByteArray | addInplace(SparseByteArray vector)Add the values in the given vector to
 this vector and return this | 
| String | asciiHeader()Header for ascii input. | 
| byte[] | binaryHeader()Header for binary input. | 
| abstract void | compact()Compact the space being used by the array if possible. | 
| SparseByteArray | concatenate(List<SparseByteArray> ins)Concatenate all the inputs with this, returning a new object that is the
 result of the concatenation. | 
| SparseByteArray | concatenate(SparseByteArray... ins)Concatenate all the inputs with this, returning a new object that is the
 result of the concatenation. | 
| static SparseByteArray | concatenateArrays(SparseByteArray... arrays)Concatenate multiple arrays into a single new array. | 
| abstract SparseByteArray | copy()Deep copy the array. | 
| float | density() | 
| double | dotProduct(SparseByteArray vector)Compute the dot product with another vector | 
| abstract Iterable<SparseByteArray.Entry> | entries()Provide an iterator over the non-zero values. | 
| abstract byte | get(int index)Get the value at the given index. | 
| abstract byte | increment(int index,
         byte value)Increment the value at the given index. | 
| abstract int[] | indices() | 
| Iterable<SparseByteArray.DualEntry> | intersectEntries(SparseByteArray otherArray)Provide an iterator over the intersection of values present in
 both this array and another array. | 
| abstract boolean | isUsed(int index)Check whether the given index is used (i.e. | 
| int | length() | 
| int | maxIndex() | 
| byte | maxValue() | 
| int | minIndex() | 
| byte | minValue() | 
| SparseByteArray | multiply(double value)Copy this vector and multiply its values by a 
 scalar | 
| SparseByteArray | multiplyInplace(double value)Multiply the values inplace by a scalar and return this | 
| void | readASCII(Scanner in)Read internal state from in. | 
| void | readBinary(DataInput in)Read internal state from in. | 
| abstract SparseByteArray | reverse()Reverse the elements, returning this. | 
| abstract byte | set(int index,
   byte value)Set the value at the given index. | 
| void | setLength(int newLength)Set the length of the array. | 
| int | size() | 
| SparseByteArray | subtract(SparseByteArray vector)Subtract the values in the given vector from a copy of
 this vector and return the result | 
| SparseByteArray | subtractInplace(SparseByteArray vector)Subtract the values in the given vector from
 this array and return this | 
| byte | sumValues()Compute the sum of values | 
| byte | sumValuesSquared()Compute the sum of values squared | 
| byte[] | toArray()Convert this sparse array to a dense array. | 
| byte[] | toArray(byte[] array)Convert this sparse array to a dense array. | 
| Iterable<SparseByteArray.DualEntry> | unionEntries(SparseByteArray otherArray)Provide an iterator over the union of values present in
 both this array and another array. | 
| abstract int | used() | 
| abstract byte[] | values() | 
| void | writeASCII(PrintWriter out)Write the content of this as ascii to out. | 
| void | writeBinary(DataOutput out)Write the content of this as binary to out. | 
protected static final int DEFAULT_CAPACITY
public int length
public SparseByteArray()
public abstract byte increment(int index, byte value)
index - the indexvalue - the amount to increment by.public abstract int[] indices()
public abstract byte[] values()
public abstract Iterable<SparseByteArray.Entry> entries()
 Note: the SparseByteArray.Entry returned by the iterator
 is always the same object. In addition, the iterator
 cannot affect the value of anything in the array (i.e.
 changing anything in the SparseByteArray.Entry has no effect
 on the actual array).
public Iterable<SparseByteArray.DualEntry> unionEntries(SparseByteArray otherArray)
 Note: the SparseByteArray.DualEntry returned by the iterator
 is always the same object. In addition, the iterator
 cannot affect the value of anything in the array (i.e.
 changing anything in the SparseByteArray.DualEntry has no effect
 on the actual array).
otherArray - the second arraypublic Iterable<SparseByteArray.DualEntry> intersectEntries(SparseByteArray otherArray)
 Note: the SparseByteArray.DualEntry returned by the iterator
 is always the same object. In addition, the iterator
 cannot affect the value of anything in the array (i.e.
 changing anything in the SparseByteArray.DualEntry has no effect
 on the actual array).
otherArray - the second arraypublic abstract byte get(int index)
index - the indexpublic abstract boolean isUsed(int index)
index - the indexpublic abstract byte set(int index, byte value)
index - the index.value - the value to set.public void setLength(int newLength)
newLength - the new array lengthIllegalArgumentException - if the new length is shorter than 
                the existing length.public int size()
public int length()
public abstract int used()
public float density()
public abstract void compact()
public void writeASCII(PrintWriter out) throws IOException
WriteableASCIIwriteASCII in interface WriteableASCIIout - sink to write toIOException - an error writing to outpublic void readASCII(Scanner in) throws IOException
ReadableASCIIreadASCII in interface ReadableASCIIin - source to read from.IOException - an error reading inputpublic String asciiHeader()
ReadableASCIIasciiHeader in interface ReadableASCIIasciiHeader in interface WriteableASCIIpublic void writeBinary(DataOutput out) throws IOException
WriteableBinarywriteBinary in interface WriteableBinaryout - sink to write toIOException - an error writing to outpublic void readBinary(DataInput in) throws IOException
ReadableBinaryreadBinary in interface ReadableBinaryin - source to read from.IOException - an error reading inputpublic byte[] binaryHeader()
ReadableBinarybinaryHeader in interface ReadableBinarybinaryHeader in interface WriteableBinarypublic abstract SparseByteArray copy()
public SparseByteArray add(SparseByteArray vector)
vector - the vector to addpublic SparseByteArray addInplace(SparseByteArray vector)
vector - the vector to addpublic SparseByteArray subtract(SparseByteArray vector)
vector - the array to addpublic SparseByteArray subtractInplace(SparseByteArray vector)
vector - the vector to addpublic SparseByteArray multiply(double value)
value - scalar multiplierpublic SparseByteArray multiplyInplace(double value)
value - scalar multiplierpublic double dotProduct(SparseByteArray vector)
vector - the other vectorpublic byte maxValue()
public byte minValue()
public int maxIndex()
public int minIndex()
public abstract SparseByteArray reverse()
public static SparseByteArray concatenateArrays(SparseByteArray... arrays)
arrays - the arrays to concatenate.public byte sumValues()
public byte sumValuesSquared()
public byte[] toArray()
 Be aware that calling this method results in an array of length
 being created. This could be very bad for performance.
public byte[] toArray(byte[] array)
length, then it will be cleared and populated with the data
 held in this sparse array. If the input array is null or is
 smaller than length, then a new array will be allocated, filled
 and returned.
 
 Be aware that calling this method may result in an array of
 length being created. This could be very bad for performance.
array - The array to fill or null.public SparseByteArray concatenate(SparseByteArray... ins)
Concatenatableconcatenate in interface Concatenatable<SparseByteArray,SparseByteArray>ins - the inputspublic SparseByteArray concatenate(List<SparseByteArray> ins)
Concatenatableconcatenate in interface Concatenatable<SparseByteArray,SparseByteArray>ins - the inputs