如何根据日期对对象图进行排序

时间:2018-10-07 10:40:57

标签: java sorting linkedhashmap

如何根据对象中的时间字段对地图进行排序。我的地图如下:

Map<Integer, ShiftDTO> -> ShiftDTO由以下键组成:shiftNameshiftStartTimeshiftEndTimeshiftStartTime的类型为Date,我想根据日期以升序排序。以下代码是我用来根据地图关键字进行排序的代码:

LinkedHashMap<Integer, ShiftDTO> sortedMap = new LinkedHashMap<Integer, ShiftDTO>();
    v.getShiftHashMap().entrySet().stream().sorted(Map.Entry.comparingByKey())
        .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));

但是我如何基于shiftStartTime对所有班次条目进行排序?

1 个答案:

答案 0 :(得分:1)

您只需要在create方法中更改比较器。您可以使用以下比较器:

sorted

否则,您可以使用(entry1, entry2) -> entry1.getValue().shiftStartTime.compareTo(entry2.getValue().shiftStartTime) 并在创建地图时将此比较器传递给其构造函数。