liyuandong 2010-01-20 12:09
浏览 287
已采纳

LIst合并后并排序问题

 

             我从数据库查出来的数据封装成了List<map<string,string>>的形式,一个map是一个条数据库表记录,key是数据库表中的字段名,value是字段对应的值。现在我有这样了2个List,这2个List中map的结构存储的数据都是一样的。这是因为我的应用中,有些List数据是从本地系统中查出来的,有些是从别人服务器上查出来的...还有就是map中有个操作时间的key_value

 

    订单号       操作时间                           操作站点                       跟踪状态

   123232      2010-01-10 12:20:00        总站                            数据导入完毕

   123232     2010-01-10 12:50:00        总站                            数据发送到合作伙伴

   123232     2010-01-10 12:20:00       上海建安-总站               接收数据成功

   123232     2010-01-10 12:20:00       上海建安-总站               派送

 

字段名:  订单号     cwb  操作时间 trackdatetime  操作站点 branchname  跟踪状态 trackevent

 

前2条记录是在本地查的,后2条记录是在别人服务器查出来的.. 需要将这2个List合并之后按map中的操作时间去排个序。。。 只有这些分了,望大家见谅,以后补给大家,呵呵。。望大家各抒几见!!!

 

  • 写回答

5条回答 默认 最新

  • wanghaolovezlq 2010-01-20 13:15
    关注

    [code="java"]

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;

    public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Map<String,String> map1 = new HashMap<String, String>();
        map1.put("operationTime", "2010-01-10 12:20:00");
    
        Map<String,String> map2 = new HashMap<String, String>();
        map2.put("operationTime", "2010-01-10 12:40:00");
    
        Map<String,String> map3 = new HashMap<String, String>();
        map3.put("operationTime", "2010-01-10 12:30:00");
    
        List<Map<String,String>> list = new ArrayList<Map<String,String>>();
        list.add(map1);
        list.add(map2);
        list.add(map3);
    
        System.out.println("排序前的list:");
        System.out.println(list);
    
        final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Collections.sort(list, new Comparator<Map<String,String>>(){
    
            public int compare(Map<String, String> o1, Map<String, String> o2)
            {
                //取出操作时间
                int ret = 0;
                try
                {
                    ret = df.parse(o1.get("operationTime")).compareTo(df.parse(o2.get("operationTime")));
                } catch (ParseException e)
                {                   
                    throw new RuntimeException(e);
                }
                return  ret;
            }
    
        });
    
        System.out.println("排序后的list:");
        System.out.println(list);
    }
    

    }

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择