private int reverseIndex(int k){
  if (reverseIndexMap == null) {
    reverseIndexMap=new int[attributes.getLength()];
    for (int i=0, len=indexSet.size(); i < len; i++)     reverseIndexMap[indexSet.get(i)]=i + 1;
  }
  return reverseIndexMap[k] - 1;
}

private int reverseIndex ( int k ) { if ( reverseIndexMap == null ) { reverseIndexMap = new int [ attributes . getLength ( ) ] ; for ( int i = 0 , len = indexSet . size ( ) ; i < len ; i ++ ) reverseIndexMap [ indexSet . get ( i ) ] = i + 1 ; } return reverseIndexMap [ k ] - 1 ; }
gets the index in the filtered set for a given real index . if the reverseindexmap is not computed it computes it , otherwise it just uses the previously computed map .
