com.ibm.icu.util
Class CompactByteArray

java.lang.Object
  extended bycom.ibm.icu.util.CompactByteArray
All Implemented Interfaces:
java.lang.Cloneable

public final class CompactByteArray
extends java.lang.Object
implements java.lang.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:
CompactCharArray
Status:
Internal. This API is ICU internal only.

Field Summary
static int UNICODECOUNT
          The total number of Unicode characters.
 
Constructor Summary
CompactByteArray()
          Default constructor for CompactByteArray, the default value of the compact array is 0.
CompactByteArray(byte defaultValue)
          Constructor for CompactByteArray.
CompactByteArray(char[] indexArray, byte[] newValues)
          Constructor for CompactByteArray.
CompactByteArray(java.lang.String indexArray, java.lang.String valueArray)
          Constructor for CompactByteArray.
 
Method Summary
 java.lang.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(java.lang.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.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UNICODECOUNT

public static final int UNICODECOUNT
The total number of Unicode characters.

See Also:
Constant Field Values
Status:
Internal. This API is ICU internal only.
Constructor Detail

CompactByteArray

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

Status:
Internal. This API is ICU internal only.

CompactByteArray

public CompactByteArray(byte defaultValue)
Constructor for CompactByteArray.

Parameters:
defaultValue - the default value of the compact array.
Status:
Internal. This API is ICU internal only.

CompactByteArray

public CompactByteArray(char[] indexArray,
                        byte[] newValues)
Constructor for CompactByteArray.

Parameters:
indexArray - the indicies of the compact array.
newValues - the values of the compact array.
Throws:
java.lang.IllegalArgumentException - If the index is out of range.
Status:
Internal. This API is ICU internal only.

CompactByteArray

public CompactByteArray(java.lang.String indexArray,
                        java.lang.String valueArray)
Constructor for CompactByteArray.

Parameters:
indexArray - the RLE-encoded indicies of the compact array.
valueArray - the RLE-encoded values of the compact array.
Throws:
java.lang.IllegalArgumentException - if the index or value array is the wrong size.
Status:
Internal. This API is ICU internal only.
Method Detail

elementAt

public byte 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
Status:
Internal. This API is ICU internal only.

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.

Parameters:
index - the character to set the mapped value with
value - the new mapped value
Status:
Internal. This API is ICU internal only.

setElementAt

public void setElementAt(char start,
                         char end,
                         byte 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
Status:
Internal. This API is ICU internal only.

compact

public void compact()
Compact the array.

Status:
Internal. This API is ICU internal only.

compact

public void compact(boolean exhaustive)
Compact the array.

Status:
Internal. This API is ICU internal only.

getIndexArray

public char[] getIndexArray()
For internal use only. Do not modify the result, the behavior of modified results are undefined.

Status:
Internal. This API is ICU internal only.

getValueArray

public byte[] getValueArray()
For internal use only. Do not modify the result, the behavior of modified results are undefined.

Status:
Internal. This API is ICU internal only.

clone

public java.lang.Object clone()
Overrides Cloneable

Status:
Internal. This API is ICU internal only.

equals

public boolean equals(java.lang.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.
Status:
Internal. This API is ICU internal only.

hashCode

public int hashCode()
Generates the hash code for the compact array object

Status:
Internal. This API is ICU internal only.


Copyright (c) 2006 IBM Corporation and others.