Kotlin中如何过滤排序字典(Map)并提取指定字段列表
Kotlin 列表过滤排序实现方案
你提供的待处理数据为List<Map<String, Any>>类型(元素为字典的列表),按需求分三步处理即可:
- 过滤:筛选
shouldShow字段值为true的条目 - 排序:对过滤结果按
displayOrder字段值做降序排列 - 提取:从排序后的条目中取出
state字段,组装为字符串列表
可直接运行的实现代码如下:
fun main() { // 原始待处理数据 val rawList = listOf( mapOf("shouldShow" to true, "displayOrder" to 2, "state" to "Alaska"), mapOf("shouldShow" to false, "displayOrder" to 3, "state" to "Texas"), mapOf("shouldShow" to true, "displayOrder" to 1, "state" to "Arizona") ) val stateList = rawList .filter { it["shouldShow"] == true } .sortedByDescending { it["displayOrder"] as Int } .map { it["state"] as String } // 输出结果:[Alaska, Arizona] println(stateList) }
注意:如果业务中字段可能存在空值,将强制类型转换
as替换为安全转换as?搭配空值兜底即可,避免出现类型转换异常。
内容的提问来源于stack exchange,提问作者Objective24
相关产品推荐
相关产品推荐

