/**
  * Returns a deep copy of the receiver.
  *
  * @return a deep copy of the receiver.
  */
 public Object clone() {
   SparseOpenIntDoubleHashMap copy = (SparseOpenIntDoubleHashMap) super.clone();
   copy.table = (int[]) copy.table.clone();
   copy.values = (double[]) copy.values.clone();
   copy.state = (byte[]) copy.state.clone();
   return copy;
 }
 /**
  * Clears the receiver, then adds all (key,value) pairs of <tt>other</tt>values to it.
  *
  * @param other the other map to be copied into the receiver.
  */
 public void assign(AbstractIntHashMap other) {
   if (!(other instanceof SparseOpenIntDoubleHashMap)) {
     super.assign(other);
     return;
   }
   SparseOpenIntDoubleHashMap source = (SparseOpenIntDoubleHashMap) other;
   SparseOpenIntDoubleHashMap copy = (SparseOpenIntDoubleHashMap) source.copy();
   this.values = copy.values;
   this.table = copy.table;
   this.state = copy.state;
   this.freeEntries = copy.freeEntries;
   this.distinct = copy.distinct;
   this.lowWaterMark = copy.lowWaterMark;
   this.highWaterMark = copy.highWaterMark;
   this.minLoadFactor = copy.minLoadFactor;
   this.maxLoadFactor = copy.maxLoadFactor;
 }