【问题标题】:Sorting map<String,String> by date(value) using stream Java使用流 Java 按日期(值)对 map<String,String> 进行排序
【发布时间】:2020-05-21 19:48:03
【问题描述】:

我有 Map,缩写为键,时间(持续时间)为值

VBM=01:12.434
SVF=01:04.415
CSR=01:12.950
DRR=01:12.013
KMH=01:13.393
SPF=01:12.848
SVM=01:12.463
CLS=01:12.829
BHS=01:13.179
LHM=01:12.460
LSW=01:13.323

我需要将它从最短的持续时间到最长的排序。

我使用了 4 大方法来做到这一点,我想知道我是否可以通过流轻松做到这一点。

【问题讨论】:

    标签: java sorting date time java-stream


    【解决方案1】:

    要对地图进行排序,请尝试以下操作。一定要使用LinkedHashMap,否则它不会保持排序状态。您可以将Map.Entry.comparingByValue() 替换为您选择的Comparator

    map
      .entrySet()
      .stream()
      .sorted(Map.Entry.comparingByValue())
      .collect(Collectors.toMap(
        Map.Entry::getKey,
        Map.Entry::getValue,
        (e1, e2) -> e1,
        LinkedHashMap::new
      ));
    

    【讨论】:

      【解决方案2】:
      Map<String, String> unSortedMap = new LinkedHashMap<>();
          unSortedMap.put("VBM","01:12.434");
          unSortedMap.put("SVF","01:04.415");
          unSortedMap.put("CSR","01:12.950");
          unSortedMap.put("DRR","01:12.013");
          unSortedMap.put("KMH","01:13.393");
          unSortedMap.put("SPF","01:12.848");
          unSortedMap.put("SVM","01:12.463");
          unSortedMap.put("CLS","01:12.829");
          unSortedMap.put("BHS","01:13.179");
          unSortedMap.put("LHM","01:12.460");
          unSortedMap.put("LSW","01:13.323");
          System.out.println("Unsorted Map : " + unSortedMap);
          LinkedHashMap<String, String> sortedMap = new LinkedHashMap<>(); 
          unSortedMap.entrySet()
              .stream()
                  .sorted(Map.Entry.comparingByValue());
                  .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
              System.out.println("\n\n\nSorted Map   : " + unSortedMap);      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-22
        • 2012-08-24
        • 2017-09-07
        • 1970-01-01
        • 2021-01-31
        • 2015-07-16
        • 1970-01-01
        • 2020-02-26
        相关资源
        最近更新 更多