@Override public void deleteColumns(int start,int len) throws FitsException {
  ensureData();
  Object[] newData=new Object[this.nFields - len];
  int[] newOffsets=new int[this.nFields - len];
  int[] newLengths=new int[this.nFields - len];
  Class<?>[] newTypes=new Class[this.nFields - len];
  String[] newNulls=new String[this.nFields - len];
  System.arraycopy(this.data,0,newData,0,start);
  System.arraycopy(this.lengths,0,newLengths,0,start);
  System.arraycopy(this.types,0,newTypes,0,start);
  System.arraycopy(this.nulls,0,newNulls,0,start);
  System.arraycopy(this.data,start + len,newData,start,this.nFields - start - len);
  System.arraycopy(this.lengths,start + len,newLengths,start,this.nFields - start - len);
  System.arraycopy(this.types,start + len,newTypes,start,this.nFields - start - len);
  System.arraycopy(this.nulls,start + len,newNulls,start,this.nFields - start - len);
  for (int i=start; i < start + len; i+=1) {
    this.rowLen-=this.lengths[i] + 1;
  }
  this.data=newData;
  this.offsets=newOffsets;
  this.lengths=newLengths;
  this.types=newTypes;
  this.nulls=newNulls;
  if (this.isNull != null) {
    boolean found=false;
    boolean[] newIsNull=new boolean[this.nRows * (this.nFields - len)];
    for (int i=0; i < this.nRows; i+=1) {
      int oldOff=this.nFields * i;
      int newOff=(this.nFields - len) * i;
      for (int col=0; col < start; col+=1) {
        newIsNull[newOff + col]=this.isNull[oldOff + col];
        found=found || this.isNull[oldOff + col];
      }
      for (int col=start + len; col < this.nFields; col+=1) {
        newIsNull[newOff + col - len]=this.isNull[oldOff + col];
        found=found || this.isNull[oldOff + col];
      }
    }
    if (found) {
      this.isNull=newIsNull;
    }
 else {
      this.isNull=null;
    }
  }
  this.buffer=null;
  this.nFields-=len;
}

@ Override public void deleteColumns ( int start , int len ) throws FitsException { ensureData ( ) ; Object [ ] newData = new Object [ this . nFields - len ] ; int [ ] newOffsets = new int [ this . nFields - len ] ; int [ ] newLengths = new int [ this . nFields - len ] ; Class < ? > [ ] newTypes = new Class [ this . nFields - len ] ; String [ ] newNulls = new String [ this . nFields - len ] ; System . arraycopy ( this . data , 0 , newData , 0 , start ) ; System . arraycopy ( this . lengths , 0 , newLengths , 0 , start ) ; System . arraycopy ( this . types , 0 , newTypes , 0 , start ) ; System . arraycopy ( this . nulls , 0 , newNulls , 0 , start ) ; System . arraycopy ( this . data , start + len , newData , start , this . nFields - start - len ) ; System . arraycopy ( this . lengths , start + len , newLengths , start , this . nFields - start - len ) ; System . arraycopy ( this . types , start + len , newTypes , start , this . nFields - start - len ) ; System . arraycopy ( this . nulls , start + len , newNulls , start , this . nFields - start - len ) ; for ( int i = start ; i < start + len ; i += 1 ) { this . rowLen -= this . lengths [ i ] + 1 ; } this . data = newData ; this . offsets = newOffsets ; this . lengths = newLengths ; this . types = newTypes ; this . nulls = newNulls ; if ( this . isNull != null ) { boolean found = false ; boolean [ ] newIsNull = new boolean [ this . nRows * ( this . nFields - len ) ] ; for ( int i = 0 ; i < this . nRows ; i += 1 ) { int oldOff = this . nFields * i ; int newOff = ( this . nFields - len ) * i ; for ( int col = 0 ; col < start ; col += 1 ) { newIsNull [ newOff + col ] = this . isNull [ oldOff + col ] ; found = found || this . isNull [ oldOff + col ] ; } for ( int col = start + len ; col < this . nFields ; col += 1 ) { newIsNull [ newOff + col - len ] = this . isNull [ oldOff + col ] ; found = found || this . isNull [ oldOff + col ] ; } } if ( found ) { this . isNull = newIsNull ; } else { this . isNull = null ; } } this . buffer = null ; this . nFields -= len ; }
delete columns from the table .
