private static void sort_by_key(){
Map<Integer, Integer> treeMap = new TreeMap<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1; //倒序.这里说明一下,如果返回负值,则o1先输出,反之则o2
}
});
//填充数据
for(int i = 0; i < 100;i++){
int key = (int)(10000*Math.random());
int value = (int)(10000*Math.random());
treeMap.put(key, value);
}
outMap(treeMap);
}
public static void outMap(Map<Integer, Integer> map){
for(Integer integer:map.keySet()){
System.out.println("key="+integer+" value="+map.get(integer));
}
}
/* 结果如下:
key=9977 value=80
key=9684 value=7108
key=9422 value=1706
key=9264 value=1210
key=9248 value=4758
key=9024 value=7048
key=8892 value=3124
key=8879 value=6414
key=8814 value=8171
key=8728 value=1538
key=8513 value=4956
key=8462 value=5617
key=8355 value=8912
*/
private static Map<Integer, Integer> sortMap(Map<Integer, Integer> linkedMap) {
List<Map.Entry<Integer, Integer>> cache = new ArrayList<>(linkedMap.entrySet());
//重写比较函数
Collections.sort(cache,new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
//若返回值小于0,则o1在o2前面
return o2.getValue()-o1.getValue();
}
});
Map<Integer, Integer> resultMap = new LinkedHashMap<>();
//将结果插入LinkedMap然后返回
for(int i = 0; i < cache.size();i++){
resultMap.put(cache.get(i).getKey(), cache.get(i).getValue());
}
return resultMap;
}
/*结果:
7965 9966
1067 9963
1720 9833
3257 9738
3934 9578
777 9348
1924 9315
3472 9270
3649 9114
5892 9078
*/
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有