private void expand()
    {
        int i;
        if (isCompact) {
            byte[]  tempArray;
            hashes = new int[INDEXCOUNT];
            tempArray = new byte[UNICODECOUNT];
            for (i = 0; i < UNICODECOUNT; ++i) {
                byte value = elementAt((char)i);
                tempArray[i] = value;
                touchBlock(i >> BLOCKSHIFT, value);
            }
            for (i = 0; i < INDEXCOUNT; ++i) {
                indices[i] = (char)(i<<BLOCKSHIFT);
            }
            values = null;
            values = tempArray;
            isCompact = false;
        }
    }
private void expand ( ) { int i ; if ( isCompact ) { byte [ ] tempArray ; hashes = new int [ INDEXCOUNT ] ; tempArray = new byte [ UNICODECOUNT ] ; for ( i = 0 ; i < UNICODECOUNT ; ++ i ) { byte value = elementAt ( ( char ) i ) ; tempArray [ i ] = value ; touchBlock ( i > > BLOCKSHIFT , value ) ; } for ( i = 0 ; i < INDEXCOUNT ; ++ i ) { indices [ i ] = ( char ) ( i << BLOCKSHIFT ) ; } values = null ; values = tempArray ; isCompact = false ; } }
Expanding takes the array back to a 65536 element array.