code: public Collection values() {
          if (values==null) {
              values = new AbstractCollection() {
                  public Iterator iterator() {
                      return new IntHashIterator(VALUES);
                  }
                  public int size() {
                      return count;
                  }
                  public boolean contains(Object o) {
                      return containsValue(o);
                  }
                  public void clear() {
                      IntHashMap.this.clear();
                  }
              };
          }
          return values;
      }
docs: Returns a collection view of the values contained in this map.  The
  collection is backed by the map, so changes to the map are reflected in
  the collection, and vice-versa.  The collection supports element
  removal, which removes the corresponding mapping from this map, via the
  <tt>Iterator.remove</tt>, <tt>Collection.remove</tt>,
  <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt> operations.
  It does not support the <tt>add</tt> or <tt>addAll</tt> operations.
  
  @return a collection view of the values contained in this map.