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

How to sort map of object on the basis of date

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

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

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 对所有班次条目进行排序?

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

(entry1, entry2) -> entry1.getValue().shiftStartTime.compareTo(entry2.getValue().shiftStartTime)

否则您可以使用 TreeMap 并在创建地图时将此比较器传递给其构造函数。