@Override
 public ByteBuffer serializeUnlocked() {
   ByteBuffer ret = ByteBuffer.allocate(this.getSerializedSizeUnlocked());
   ret.putInt(this.params.size());
   TIntDoubleIterator it = this.params.iterator();
   while (it.hasNext()) {
     it.advance();
     ret.putInt(it.key());
     ret.putDouble(it.value());
   }
   return ret;
 }
 @Override
 public void remove() {
   iter.remove();
 }
 @Override
 public Integer next() {
   iter.advance();
   return iter.key();
 }
 @Override
 public boolean hasNext() {
   return iter.hasNext();
 }