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

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


Map<Integer, ShiftDTO> -> ShiftDTO由以下键组成:shiftName, shiftStartTime, shiftEndTime。shiftStartTime是 type 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?


12345678_0001
浏览 92回答 1
1回答

SMILET

您只需要更改sorted方法中的比较器。您可以使用以下比较器:(entry1,&nbsp;entry2)&nbsp;->&nbsp;entry1.getValue().shiftStartTime.compareTo(entry2.getValue().shiftStartTime)或者,您可以TreeMap在创建地图时使用 a并将此比较器传递给其构造函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java