code: public void removeElementAt(int i)
    {
  
      if (null == m_map)
        return;
        
      if (i >= m_firstFree)
        throw new ArrayIndexOutOfBoundsException(i + " >= " + m_firstFree);
      else if (i < 0)
        throw new ArrayIndexOutOfBoundsException(i);
  
      if (i < m_firstFree - 1)
        System.arraycopy(m_map, i + 1, m_map, i, m_firstFree - i - 1);
  
      m_firstFree--;
      m_map[m_firstFree] = null;
    }
docs: Deletes the component at the specified index. Each component in
  this vector with an index greater or equal to the specified
  index is shifted downward to have an index one smaller than
  the value it had previously.
  
  @param i Index of node to remove