android - 按值的日期属性对 Hashmap 键进行排序
问题描述
我有:
var schedulesByMonth = HashMap<String, MutableList<Schedule>>()
Schedule 有一个startDate: Date
属性。
我从一个巨大的Schedule
对象列表开始,并按月将它们分类到哈希图中。因此,如果 Schedule 对象上的 startDate 是 June 2018,它将进入 key 的列表June 2018
。
这一切都很好,但我需要按月正确排序的选择器的键:
schedulesByMonth.keys
如果那个数组是["July 2018", "August 2018", "June 2018"]
我需要的["June 2018", "July 2018", "August 2018"]
。
我知道我可以制作一个 sortedMap:
val sorted = schedulesByMonth.toSortedMap(compareBy<String> {
}
但这只会对键 ( String
) 进行排序。我怎样才能使it
值( ),以便我可以按其中一个附表MutableList<Schedule>
排序?startDate
解决方案
您可以使用 对条目进行排序sortedWith
,它将比较器作为其参数。可以很容易地创建比较器compareBy
:
schedulesByMonth.entries.sortedWith(compareBy({ it.value[0].startDate })
推荐阅读
- php - 在mysql和php中按日期范围分组
- python-3.x - Python:变量类型注释和默认初始化为无
- c++ - 当其他线程正在运行不访问“this”的成员函数时删除“this”的未定义行为?
- xcode - Xcode 11.2 (11B52) 中的上传失败被拒绝:ITMS-90534:MacOS Catalina 10.15 中的工具链无效
- eclipse - menuContribution 的 locationURI 中的有效放置修饰符
- python - 如何将函数的多个返回值定位到熊猫数据框的多列中?
- vba - 在 VBA 中创建变量文件夹
- mysql - 自加入和更新
- jquery - 使用 jQuery 从 Array 中查找和替换动态值
- python - 使用 url 从 conda 通道安装软件包