private void addElements(int value,int numberOfElements){
  if (m_firstFree + numberOfElements < m_blocksize)   for (int i=0; i < numberOfElements; i++) {
    m_map0[m_firstFree++]=value;
  }
 else {
    int index=m_firstFree >>> m_SHIFT;
    int offset=m_firstFree & m_MASK;
    m_firstFree+=numberOfElements;
    while (numberOfElements > 0) {
      if (index >= m_map.length) {
        int newsize=index + m_numblocks;
        int[][] newMap=new int[newsize][];
        System.arraycopy(m_map,0,newMap,0,m_map.length);
        m_map=newMap;
      }
      int[] block=m_map[index];
      if (null == block)       block=m_map[index]=new int[m_blocksize];
      int copied=(m_blocksize - offset < numberOfElements) ? m_blocksize - offset : numberOfElements;
      numberOfElements-=copied;
      while (copied-- > 0)       block[offset++]=value;
      ++index;
      offset=0;
    }
  }
}

private void addElements ( int value , int numberOfElements ) { if ( m_firstFree + numberOfElements < m_blocksize ) for ( int i = 0 ; i < numberOfElements ; i ++ ) { m_map0 [ m_firstFree ++ ] = value ; } else { int index = m_firstFree > > > m_SHIFT ; int offset = m_firstFree & m_MASK ; m_firstFree += numberOfElements ; while ( numberOfElements > 0 ) { if ( index >= m_map . length ) { int newsize = index + m_numblocks ; int [ ] [ ] newMap = new int [ newsize ] [ ] ; System . arraycopy ( m_map , 0 , newMap , 0 , m_map . length ) ; m_map = newMap ; } int [ ] block = m_map [ index ] ; if ( null == block ) block = m_map [ index ] = new int [ m_blocksize ] ; int copied = ( m_blocksize - offset < numberOfElements ) ? m_blocksize - offset : numberOfElements ; numberOfElements -= copied ; while ( copied -- > 0 ) block [ offset ++ ] = value ; ++ index ; offset = 0 ; } } }
append several int values onto the vector .
