code: public Collection<String> attributeValues(String key) {
  		if (featindex.containsKey(key)){
  			Map<String, List<FeatureI>> map = featindex.get(key);
  			Collection<String> result = map.keySet();
  			if (result == null) result = new HashSet<String>();
  			return Collections.unmodifiableCollection(result);
  		}
  		LinkedHashMap<String, String> hash = new LinkedHashMap<String, String>();
  		for (FeatureI f : this) {
  			//enter as a key -- removes duplicates
  			hash.put(f.getAttribute(key), null);
  		}
  
  		return Collections.unmodifiableCollection(hash.keySet());
  	}
docs: Create a collection of the unique values for the specified key.
  Example: For GTF files, using the "gene_id" key will give the names of all
  the genes in this list.
  
  @return A collection (suitable for iteration using Java's "for" loop) of all the
  values found for this key. The order of the values is undefined; it will not match
  the order of features in the list.