kotlin mutableListの要素をListを使って削除する

kotlin mutableListの要素をListを使って削除する

kotlinで、mutableListの要素をListを使って削除する手順を記述してます。演算子「-=」または「removeAll」で可能です。

環境

  • OS windows11 home
  • java 19.0.1
  • kotlin 1.7.20-release-201

Listを使って削除

Listを使って削除するには、「-=」か「removeAll」を使用します。

リスト名 -= リスト名

or

リスト名.removeAll(リスト名)

実際に、削除してみます。

fun main() {

    var mlist = mutableListOf("aaa", "bbb", "ccc")
    var list = listOf("aaa", "ccc")

    mlist -= list

    mlist.forEach {
        v -> println(v) // bbb
    }

}

削除されていることが確認できます。

「removeAll」でも、同様の結果が得られます。

fun main() {

    var mlist = mutableListOf("aaa", "bbb", "ccc")
    var list = listOf("aaa", "ccc")

    mlist.removeAll(list)

    mlist.forEach {
        v -> println(v) // bbb
    }

}

削除対象のListni存在しない要素が、あってもエラーにはなりません。

fun main() {

    var mlist = mutableListOf("aaa", "bbb", "ccc")
    var list = listOf("aaa", "ccc", "ddd")

    mlist.removeAll(list)

    mlist.forEach {
        v -> println(v) // bbb
    }

}

型が異なる場合はエラーとなります。

fun main() {

    var mlist = mutableListOf(1,2,3)
    var list = listOf("1")

    mlist.removeAll(list)
    // error: type inference failed. The value of the type parameter T should be mentioned in 
       input types (argument types, receiver type or expected type). Try to specify it explicitly.
       mlist.removeAll(list)

    mlist.forEach {
        v -> println(v)
    }

}