com.ibm.icu.util

Class CompactCharArray

Implemented Interfaces:
Cloneable

public final class CompactCharArray
extends Object
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: 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.
Author:
Helena Shih
See Also:
CompactByteArray

Field Summary

static int
BLOCKSHIFT
static int
UNICODECOUNT
The total number of Unicode characters.

Constructor Summary

CompactCharArray()
Default constructor for CompactCharArray, the default value of the compact array is 0.
CompactCharArray(String indexArray, String valueArray)
Constructor for CompactCharArray.
CompactCharArray(char defaultValue)
Constructor for CompactCharArray.
CompactCharArray(indexArray[] , newValues[] )
Constructor for CompactCharArray.

Method Summary

Object
clone()
Overrides Cloneable
void
compact()
Compact the array
void
compact(boolean exhaustive)
Compact the array.
char
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.
char[]
getValueArray()
For internal use only.
int
hashCode()
Generates the hash code for the compact array object
void
setElementAt(char index, char value)
Set a new value for a Unicode character.
void
setElementAt(char start, char end, char value)
Set new values for a range of Unicode character.

Field Details

BLOCKSHIFT

public static final int BLOCKSHIFT
Field Value:
5

UNICODECOUNT

public static final int UNICODECOUNT
The total number of Unicode characters.
Field Value:
65536

Constructor Details

CompactCharArray

public CompactCharArray()
Default constructor for CompactCharArray, the default value of the compact array is 0.

CompactCharArray

public CompactCharArray(String indexArray,
                        String valueArray)
Constructor for CompactCharArray.
Parameters:
indexArray - the RLE-encoded indicies of the compact array.
valueArray - the RLE-encoded values of the compact array.

CompactCharArray

public CompactCharArray(char defaultValue)
Constructor for CompactCharArray.
Parameters:
defaultValue - the default value of the compact array.

CompactCharArray

public CompactCharArray(indexArray[] ,
                        newValues[] )
Constructor for CompactCharArray.
Parameters:

Method Details

clone

public Object clone()
Overrides Cloneable

compact

public void compact()
Compact the array

compact

public void compact(boolean exhaustive)
Compact the array.

elementAt

public char elementAt(char index)
Get the mapped value of a Unicode character.
Parameters:
index - the character to get the mapped value with
Returns:
the mapped value of the given character

equals

public boolean equals(Object obj)
Compares the equality of two compact array objects.
Parameters:
obj - the compact array object to be compared with this.
Returns:
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 char[] 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,
                         char value)
Set a new value for a Unicode character. Set automatically expands the array if it is compacted.
Parameters:
index - the character to set the mapped value with
value - the new mapped value

setElementAt

public void setElementAt(char start,
                         char end,
                         char value)
Set new values for a range of Unicode character.
Parameters:
start - the starting offset of the range
end - the ending offset of the range
value - the new mapped value

Copyright (c) 2006 IBM Corporation and others.