map排序问题

map根据次数排序,同时取最后一次查询到的附件数据

1、需求是某某供应商可以参与投标多轮;现要求存在多轮报价取最后一次的报价文件;不存在则取第一次的报价;(第一次的投标逻辑与之后的逻辑不一样,存在不同的表里)

2、Hashmap是无序的;treeMap是有序的即:

Map<String, Object> map = new TreeMap<String,Object>(Collections.reverseOrder());//treeMap是有序的,treeMap默认是根据key升序的.
Collections.reverseOrder()即可更改key的排序方式(降序);


3、将相关数据和对象放在用报价次数作为key,降序排序;循环,可以取到相关的数据和附件即可停止

4、map排序的方法

 

//创建 TreeMap 集合,设置Key降序方法一:
    //TreeMap<Integer,UserInfo> userTreeMap = new TreeMap<>(Collections.reverseOrder());
 
    //创建 TreeMap 集合,设置Key降序方法二:
    TreeMap<Integer,UserInfo> userTreeMap = new TreeMap<Integer,UserInfo>(new Comparator<Integer>()
    {
        public int compare(Integer key1,Integer key2)
        {
            //降序排序
            return key2.compareTo(key1);
        }
    });
 
    //获取用户信息列表
    userTreeMap.putAll(getUserMap());
 
    //遍历用户信息列表
    System.out.println("TreeMap集合,实现Key降序:");
    for(Iterator<Integer> it = userTreeMap.keySet().iterator(); it.hasNext();)
    {
        int key = it.next();
        UserInfo value = userTreeMap.get(key);
 
        System.out.println("Key键:" + key);
        System.out.println("Value值:" + value);
    }

 

 嗨,朋友既然来了何不关注一下!

posted @ 2024-01-16 10:54  逝年的我们  阅读(10)  评论(0编辑  收藏  举报