static <K,V extends Comparable<? super V>> SortedSet<Map.Entry<k v="">> entriesSortedByValues(Map<k v=""> map) { SortedSet<Map.Entry<k v="">> sortedEntries = new TreeSet<Map.Entry<k v="">>( new Comparator<Map.Entry<k v="">>() { @Override public int compare(Map.Entry<k v=""> e1, Map.Entry<k v=""> e2) { int res = e2.getValue().compareTo(e1.getValue()); return res != 0 ? res : 1; // Special fix to preserve items with equal values } } ); sortedEntries.addAll(map.entrySet()); return sortedEntries; }