code: public Collection<V> values() {
          Collection<V> vs = values;
          if (vs == null) {
              vs = new LinkedValues();
              values = vs;
          }
          return vs;
      }
docs: Returns a {@link 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.  If the map is
  modified while an iteration over the collection is in progress
  (except through the iterator's own <tt>remove</tt> operation),
  the results of the iteration are undefined.  The collection
  supports element removal, which removes the corresponding
  mapping from the 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.
  Its {@link Spliterator} typically provides faster sequential
  performance but much poorer parallel performance than that of
  {@code HashMap}.
  
  @return a view of the values contained in this map