You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中获取一个ArrayList中不在另一个里的元素

在Kotlin中计算两个ArrayList的差集并保持结果为ArrayList类型

原代码存在的问题

  • main函数内的局部变量不能使用private修饰符,private仅适用于类的成员变量,局部变量无需访问控制修饰
  • minus()方法返回的是List<String>类型,无法直接赋值给ArrayList<String>类型的变量,需进行类型转换

修正后的代码

fun main() {
    var first = ArrayList<String>()
    var second = ArrayList<String>()

    first.add("a")
    first.add("b")
    first.add("c")
    first.add("d")
    first.add("e")
    second.add("a")
    second.add("b")
    second.add("c")

    // 将minus返回的List转换为ArrayList
    val difference = ArrayList(first.minus(second))

    println(difference)    // 输出: [d, e]
}

调整说明

  1. 移除private修饰符:main函数中的first、second是局部变量,直接用var声明即可,不需要访问控制修饰符
  2. 转换结果类型:借助ArrayList的构造函数,将minus()返回的List实例转换为ArrayList<String>,满足变量类型要求

另一种实现方式(更直观)

也可以通过filter方法直接过滤出符合条件的元素,再包装为ArrayList:

val difference = ArrayList(first.filter { it !in second })

这种方式直接筛选第一个列表中不存在于第二个列表的元素,逻辑更清晰,结果同样是ArrayList<String>类型。

内容的提问来源于stack exchange,提问作者Marlon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:48:22