code: public void keys(IntArrayList list) {
  	list.setSize(distinct);
  	int[] elements = list.elements();
  	
  	int[] tab = table;
  	byte[] stat = state;
  	
  	int j=0;
  	for (int i = tab.length ; i-- > 0 ;) {
  		if (stat[i]==FULL) elements[j++]=tab[i];
  	}
  }
docs: Fills all keys contained in the receiver into the specified list.
  Fills the list, starting at index 0.
  After this call returns the specified list has a new size that equals <tt>this.size()</tt>.
  Iteration order is guaranteed to be <i>identical</i> to the order used by method {@link #forEachKey(IntProcedure)}.
  <p>
  This method can be used to iterate over the keys of the receiver.
  
  @param list the list to be filled, can have any size.