首页 > 解决方案 > 如何在给定条件的情况下从 MutableSet 中删除项目?

问题描述

var chart_values: MutableSet<MutableMap.MutableEntry<String, Any>>? = mutableSetOf()

打印chart_values

[ground={}, 
ground_level={0=115, 1=4, 2=0, 3=37, 4=63, 5=44, 6=40, 7=9}, 
ground_over={0=3, 1=3, 2=3, 3=3, 4=3, 5=3, 6=3}
date_of_birth=1988-07-18T00:00Z]

我想remove ground={}chart_values

标签: kotlincollections

解决方案


鉴于它chartValues的类型MutableSet<MutableMap.MutableEntry<String, Any>>?,您可以执行以下操作以删除任何具有空映射作为值的条目:

chartValues?.removeAll { (_, value) ->
    (value as? Map<*,  *>)?.isEmpty() == true
}

as?被称为安全转换运算符,如果转换不成功,将返回被转换的对象或 null。

笔记:

  • 你可能会更好地使用MutableMap<String, Any>
  • 使用val而不是var,因为您想改变集合而不是对它的引用

推荐阅读