Один из вариантов будет работать с keys: MutableSet<K>
карты, где вы можете использовать removeAll { ... }
или retainAll { ... }
, как если бы вы использовали список:
val m = mutableMapOf(1 to "a", 2 to "b")
m.keys.removeAll { it % 2 == 0 }
println(m) // {1=a}
(запускаемый образец)
Если для предиката недостаточно просто ключей, вы можете просто сделать то же самое с набором записей карты, entries: MutableSet<MutableEntry<K, V>>
val m = mutableMapOf(1 to "a", 2 to "b", 3 to "c")
m.entries.retainAll { it.key < 3 }
m.entries.removeAll { (k, v) -> k == 1 && v == "a" }
println(m) // {2=b}
(пригодный для работы образец)