zoukankan      html  css  js  c++  java
  • java中hashMap的排序

    hashMap排序,示例:

    private void test(){
            Map<String, List<String>> unSupportedDatesMap=new HashMap<String, List<String>>();
            unSupportedDatesMap.put("14:00-18:00", new ArrayList<String>());
            unSupportedDatesMap.put("9:00-12:00", new ArrayList<String>());    
            unSupportedDatesMap.put("19:00-22:00", new ArrayList<String>());
            
            List<Map.Entry<String, List<String>>> intervals =
                    new ArrayList<Map.Entry<String, List<String>>>(unSupportedDatesMap.entrySet());
            
            //排序前
            System.out.println("------------------排序前--------------------------");
            for (int i = 0; i < intervals.size(); i++) {
                String id = intervals.get(i).toString();
                System.out.println(id);
            }
            
            //排序
            Collections.sort(intervals, new Comparator<Map.Entry<String, List<String>>>() {   
                public int compare(Map.Entry<String, List<String>> o1, Map.Entry<String, List<String>> o2) { 
                    String intervalTime1 = o1.getKey();
                    String fromTime1 =intervalTime1.split("-")[0];
                    String intervalTime2 = o2.getKey();
                    String fromTime2 =intervalTime2.split("-")[0];
                    //转换为分钟值
                    String hour1=fromTime1.split(":")[0].trim();
                    String mininute1=fromTime1.split(":")[1].trim();
                    int times1=60*Integer.parseInt(hour1)+Integer.parseInt(mininute1);
                    
                    String hour2=fromTime2.split(":")[0].trim();
                    String mininute2=fromTime2.split(":")[1].trim();
                    int times2=60*Integer.parseInt(hour2)+Integer.parseInt(mininute2);                
                    return (times1 - times2);                 
                }
            }); 
            
            //排序后
            System.out.println("------------------排序后--------------------------");
            for (int i = 0; i < intervals.size(); i++) {
                String id = intervals.get(i).toString();
                System.out.println(id);
            }
        }
  • 相关阅读:
    Java日期时间差以及获取几天后或几天前
    java数组扩增的三种方式
    折半查找、冒泡排序和选择排序
    JavaSE-Map的三种循环
    Chrome浏览器showModalDialog兼容性及解决方案
    Integeter127与128
    statis代码块以及非static代码块之执行
    return、break、continue区别以及作用范围
    nodeJs + vue.js 小案例
    cordova CLI 命令
  • 原文地址:https://www.cnblogs.com/davidwang456/p/5777511.html
Copyright © 2011-2022 走看看