code: public void removeField(int fieldNum)
  	{
  		// range check
  		if (fieldNum < 0 || fieldNum >= this.numFields) {
  			throw new IndexOutOfBoundsException();
  		}
  		int lastIndex = this.numFields - 1;		
  
  		if (fieldNum < lastIndex) {
  			int len = lastIndex - fieldNum;
  			System.arraycopy(this.offsets, fieldNum + 1, this.offsets, fieldNum, len);
  			System.arraycopy(this.lengths, fieldNum + 1, this.lengths, fieldNum, len);
  			System.arraycopy(this.readFields, fieldNum + 1, this.readFields, fieldNum, len);
  			System.arraycopy(this.writeFields, fieldNum + 1, this.writeFields, fieldNum, len);
  			markModified(fieldNum);
  		}
  		this.offsets[lastIndex] = NULL_INDICATOR_OFFSET;
  		this.lengths[lastIndex] = 0;
  		this.writeFields[lastIndex] = null;
  
  		setNumFields(lastIndex);
  	}
docs: Removes the field at the given position.
  <p>
  This method should be used carefully. Be aware that as the field is actually removed from the record, the
  total number of fields is modified, and all fields to the right of the field removed shift one position to
  the left.
  
  @param fieldNum The position of the field to be removed, starting at zero.
  @throws IndexOutOfBoundsException Thrown, when the position is not between 0 (inclusive) and the
  number of fields (exclusive).