public class CollectionUtil {
/**
* map按照value排序
* @param <T> map中value类型
* @param map map对象
* @param comparator
* @return
*/
public static <T> Map<String,T> sortMapByValue(Map<String, T> map,Comparator<Map.Entry<String,T>> comparator) {
List<Entry<String, T>> list = new LinkedList<Entry<String, T>>(map.entrySet());
Collections.sort(list,(Comparator<Map.Entry<String,T>>) comparator);
Map<String,T> result = new LinkedHashMap<String,T>();
for (Iterator<Entry<String, T>> it = list.iterator(); it.hasNext();) {
Entry<String, T> entry = it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
/**
* 测试函数
* @param args
*/
public static void main(String[] args) {
Map<String, Float> map = new LinkedHashMap<String, Float>();
map.put("7og",10f);
map.put("apple",40f);
map.put("2oy",30f);
map.put("4at",20f);
System.out.println(map);
Map<String,Float> sortMap = sortMapByValue(map, new Comparator<Map.Entry<String, Float>>() {
@Override
public int compare(Entry<String, Float> o1,Entry<String, Float> o2) {
//控制升序或降序及比较的具体内容
return o1.getValue().compareTo(o2.getValue());
}
});
System.out.println(sortMap);
}
}
Map按value排序
最新推荐文章于 2021-02-24 05:22:18 发布