KotlinでMapの要素をラムダを使って削除する方法について記載します。
Mapの要素をラムダを使って削除する方法
Mapの要素をラムダを使って削除するには、キー もしくは バリューに対して、removeIf 関数を使用します。
書式
変数.keys.removeIf{ ラムダ式 }
変数.values.removeIf{ ラムダ式 }
変数.values.removeIf{ ラムダ式 }
戻り値
削除する要素がある:true
削除する要素がない:false
削除する要素がない:false
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// キーを条件にして削除 val mapStr = mutableMapOf( "keyAB" to "value1", "keyBC" to "value2", "keyCD" to "value3" ) // キーに文字"B"が含まれる要素を削除 val return1 = mapStr.keys.removeIf{ it -> it.contains("B") } println( mapStr ) // {keyCD=value3} println( return1 ) // true // キーに文字"A"が含まれる要素がないため、削除されない val return2 = mapStr.keys.removeIf{ it -> it.contains("A") } println( mapStr ) // {keyCD=value3} println( return2 ) // false // バリューを条件にして削除 val mapInt = mutableMapOf( "keyAB" to 20, "keyBC" to 10, "keyCD" to 30 ) // バリューが 20以下の要素を削除 val return3 = mapInt.values.removeIf{ it -> it <= 20 } println( mapInt ) // {keyCD=30} println( return3 ) // true // バリューが 10以下の要素がないため、削除されない val return4 = mapInt.values.removeIf{ it -> it <= 10 } println( mapInt ) // {keyCD=30} println( return4 ) // false |