Kotlin中如何不通过索引从listOf创建的字符串列表删除指定字符串
Kotlin 不使用索引删除列表指定元素的方案
首先注意,listOf 生成的是不可变列表,本身不支持增删操作,所有操作都会生成新的列表。
方案1:过滤移除所有匹配元素(无需索引,适配任意顺序)
直接使用 filterNot 函数过滤掉所有值为"b"的元素,完全不需要关心元素的位置:
val help = listOf("c","a","b") val result = help.filterNot { it == "b" } // 输出结果:[c, a]
如果列表里有多个"b",这个方法会全部移除。
方案2:仅移除第一个匹配元素
如果只需要删除第一个出现的"b",可以先转成可变列表调用remove()方法,该方法会自动匹配第一个符合条件的元素删除,同样不需要手动指定索引:
val help = listOf("c","a","b") val mutableList = help.toMutableList() // remove方法返回布尔值,可用来判断元素是否存在、是否删除成功 val isRemoved = mutableList.remove("b") val result = mutableList.toList() // 可选,转回到不可变列表
如果要移除所有匹配的元素,也可以调用可变列表的removeAll方法:
mutableList.removeAll { it == "b" }
内容的提问来源于stack exchange,提问作者ABINASH KUMAR
相关产品推荐
相关产品推荐

