@Override public List<Entry<T, Double>> getMostSimilarItems( T item, Collection<T> items, Collection<Property> properties, double treshold) { List<T> itemSet = new ArrayList<>(items); // itemSet.remove(item); double similarity; Map<T, Double> map = new HashMap<T, Double>(); for (T it : itemSet) { similarity = calculateSimiliraty(item, it, properties); if (similarity >= treshold) map.put(it, similarity); } return SortBy.sortByValue(map); }