public SoftReferenceSymbolTable(int initialCapacity,float loadFactor){
  if (initialCapacity < 0) {
    throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity);
  }
  if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
    throw new IllegalArgumentException("Illegal Load: " + loadFactor);
  }
  if (initialCapacity == 0) {
    initialCapacity=1;
  }
  fLoadFactor=loadFactor;
  fTableSize=initialCapacity;
  fBuckets=new SREntry[fTableSize];
  fThreshold=(int)(fTableSize * loadFactor);
  fCount=0;
  fReferenceQueue=new ReferenceQueue();
}

public SoftReferenceSymbolTable ( int initialCapacity , float loadFactor ) { if ( initialCapacity < 0 ) { throw new IllegalArgumentException ( "Illegal Capacity: " + initialCapacity ) ; } if ( loadFactor <= 0 || Float . isNaN ( loadFactor ) ) { throw new IllegalArgumentException ( "Illegal Load: " + loadFactor ) ; } if ( initialCapacity == 0 ) { initialCapacity = 1 ; } fLoadFactor = loadFactor ; fTableSize = initialCapacity ; fBuckets = new SREntry [ fTableSize ] ; fThreshold = ( int ) ( fTableSize * loadFactor ) ; fCount = 0 ; fReferenceQueue = new ReferenceQueue ( ) ; }
constructs a new , empty symboltable with the specified initial capacity and the specified load factor .
