package recsys.pb.utils;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class sort_map {
/**
* Sorting
* @param map
* @param <Integer>
* @param <Double>
* @return
*/
@SuppressWarnings("hiding")
public static<Integer, Double extends Comparable<Double>> Map<Integer, Double> sortMapByValue(Map<Integer, Double> map) {
List<Map.Entry<Integer, Double>> list = new LinkedList<Map.Entry<Integer, Double>>(
map.entrySet());
Collections.sort(list,
new Comparator<Map.Entry<Integer, Double>>() {
public int compare(Map.Entry<Integer, Double> o1,
Map.Entry<Integer, Double> o2) {
return (o2.getValue().compareTo(o1.getValue()));
}
});
Map<Integer, Double> result = new LinkedHashMap<Integer, Double>();
for (Iterator<Map.Entry<Integer, Double>> it = list.iterator(); it.hasNext();) {
Map.Entry<Integer, Double> entry = it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}