code: public static <T extends CharSequence> Collection<T> findSimilar(
  			Collection<T> ss, CharSequence t) {
  		//look for strings prefixed by 't'
  		Collection<T> result = new LinkedHashSet<>();
  		for (T s : ss) {
  			if (StringUtils.startsWithIgnoreCase(s, t)) {
  				result.add(s);
  			}
  		}
  		
  		//find strings according to their levenshtein distance
  		Collection<T> mins = findMinimum(ss, t, 5, Math.min(t.length() - 1, 7));
  		result.addAll(mins);
  		
  		return result;
  	}
docs: Searches the given collection of strings and returns a collection of
  strings similar to a given string <code>t</code>. Uses reasonable default
  values for human-readable strings. The returned collection will be
  sorted according to their similarity with the string with the best
  match at the first position.
  @param <T> the type of the strings in the given collection
  @param ss the collection to search
  @param t the string to compare to
  @return a collection with similar strings