code: @Override
  	public Collection<V> values() {
  		return new AbstractCollection<V>() {
  
  			@Override
  			public boolean add(V e) {
  				throw new UnsupportedOperationException();
  			}
  
  			@Override
  			public void clear() {
  				PairMap.this.clear();
  			}
  
  			@Override
  			public boolean contains(Object o) {
  				return values.contains(o);
  			}
  
  			@Override
  			public boolean isEmpty() {
  				return keys.isEmpty();
  			}
  
  			@Override
  			public Iterator<V> iterator() {
  				return new Iterator<V>() {
  					Iterator<V> itr = values.iterator();
  
  					@Override
  					public boolean hasNext() {
  						return itr.hasNext();
  					}
  
  					@Override
  					public V next() {
  						return itr.next();
  					}
  
  					@Override
  					public void remove() {
  						throw new UnsupportedOperationException();
  					}
  				};
  			}
  
  			@Override
  			public boolean remove(Object o) {
  				throw new UnsupportedOperationException();
  			}
  
  			@Override
  			public int size() {
  				return values.size();
  			}
  		};
  	}
docs: {@inheritDoc}