com.ibm.icu.util
Class CompactByteArray
- Cloneable
public final class CompactByteArray
implements Cloneable
class CompactATypeArray : use only on primitive data types
Provides a compact way to store information that is indexed by Unicode
values, such as character properties, types, keyboard values, etc.This
is very useful when you have a block of Unicode data that contains
significant values while the rest of the Unicode data is unused in the
application or when you have a lot of redundance, such as where all 21,000
Han ideographs have the same value. However, lookup is much faster than a
hash table.
A compact array of any primitive data type serves two purposes:
- Fast access of the indexed values.
- Smaller memory footprint.
A compact array is composed of a index array and value array. The index
array contains the indicies of Unicode characters to the value array.
static int | UNICODECOUNT - The total number of Unicode characters.
|
CompactByteArray() - Default constructor for CompactByteArray, the default value of the
compact array is 0.
|
CompactByteArray(String indexArray, String valueArray) - Constructor for CompactByteArray.
|
CompactByteArray(byte defaultValue) - Constructor for CompactByteArray.
|
CompactByteArray(indexArray[] , newValues[] ) - Constructor for CompactByteArray.
|
Object | clone() - Overrides Cloneable
|
void | compact() - Compact the array.
|
void | compact(boolean exhaustive) - Compact the array.
|
byte | elementAt(char index) - Get the mapped value of a Unicode character.
|
boolean | equals(Object obj) - Compares the equality of two compact array objects.
|
char[] | getIndexArray() - For internal use only.
|
byte[] | getValueArray() - For internal use only.
|
int | hashCode() - Generates the hash code for the compact array object
|
void | setElementAt(char index, byte value) - Set a new value for a Unicode character.
|
void | setElementAt(char start, char end, byte value) - Set new values for a range of Unicode character.
|
UNICODECOUNT
public static final int UNICODECOUNT
The total number of Unicode characters.
CompactByteArray
public CompactByteArray()
Default constructor for CompactByteArray, the default value of the
compact array is 0.
CompactByteArray
public CompactByteArray(String indexArray,
String valueArray)
Constructor for CompactByteArray.
indexArray
- the RLE-encoded indicies of the compact array.valueArray
- the RLE-encoded values of the compact array.
CompactByteArray
public CompactByteArray(byte defaultValue)
Constructor for CompactByteArray.
defaultValue
- the default value of the compact array.
CompactByteArray
public CompactByteArray(indexArray[] ,
newValues[] )
Constructor for CompactByteArray.
clone
public Object clone()
Overrides Cloneable
compact
public void compact()
Compact the array.
compact
public void compact(boolean exhaustive)
Compact the array.
elementAt
public byte elementAt(char index)
Get the mapped value of a Unicode character.
index
- the character to get the mapped value with
- the mapped value of the given character
equals
public boolean equals(Object obj)
Compares the equality of two compact array objects.
obj
- the compact array object to be compared with this.
- true if the current compact array object is the same
as the compact array object obj; false otherwise.
getIndexArray
public char[] getIndexArray()
For internal use only. Do not modify the result, the behavior of
modified results are undefined.
getValueArray
public byte[] getValueArray()
For internal use only. Do not modify the result, the behavior of
modified results are undefined.
hashCode
public int hashCode()
Generates the hash code for the compact array object
setElementAt
public void setElementAt(char index,
byte value)
Set a new value for a Unicode character.
Set automatically expands the array if it is compacted.
index
- the character to set the mapped value withvalue
- the new mapped value
setElementAt
public void setElementAt(char start,
char end,
byte value)
Set new values for a range of Unicode character.
start
- the starting offset of the rangeend
- the ending offset of the rangevalue
- the new mapped value
Copyright (c) 2006 IBM Corporation and others.