public void insert(String key,char val){
  int len=key.length() + 1;
  if (freenode + len > eq.length) {
    redimNodeArrays(eq.length + BLOCK_SIZE);
  }
  char[] strkey=new char[len--];
  key.getChars(0,len,strkey,0);
  strkey[len]=0;
  root=insert(root,strkey,0,val);
}

public void insert ( String key , char val ) { int len = key . length ( ) + 1 ; if ( freenode + len > eq . length ) { redimNodeArrays ( eq . length + BLOCK_SIZE ) ; } char [ ] strkey = new char [ len -- ] ; key . getChars ( 0 , len , strkey , 0 ) ; strkey [ len ] = 0 ; root = insert ( root , strkey , 0 , val ) ; }
branches are initially compressed , needing one node per key plus the size of the string key . they are decompressed as needed when another key with same prefix is inserted . this saves a lot of space , specially for long keys .
