У меня есть список ключей и следующая карта:
val keys = List("key1", "key2", "key5")
Map("key1" -> 1, "key2" -> 2, "key3" ->3, "key4" -> 4, "key5" -> 5)
Я хочу удалить все ключи, которые есть в списке ключей.
Я знаю, что могу выполнить итерацию по списку ключей и проверить, содержит ли карта ключ, и если да, то я могу удалить его.
Есть ли более простой способ сделать это без повторения списка ключей, в котором я просто предоставляю список ключей, и все ключи, представленные в списке, отфильтровываются с карты?
Спасибо
Преобразуйте список ключей в Set
, а затем используйте filterKeys
, чтобы выбрать все ключи, которых нет в этом наборе:
val kSet = keys.toSet
map.filterKeys(!kSet.contains(_))
вы можете использовать метод --
val keys = List("key1", "key2", "key5")
val map = Map("key1" -> 1, "key2" -> 2, "key3" ->3, "key4" -> 4, "key5" -> 5)
map -- keys