我有一个CustomObject列表,我希望从列表中删除一个具有相同ID(CustomObject的属性)的值。 现在可以通过使用循环来完成。但这对我来说似乎是非常不必要且效率低下的代码。还有其他方法可以获取具有ID的特定对象吗?
yangliuliu2009 回答:从ArrayList <Custom>中删除一个值而不运行循环
如果您项目的 SDK最低版本为24以上,则可以使用removeIf
yourList.removeIf(model -> model.id == yourid);
如果您检查
removeIf
内的代码,实际上它也会迭代 在整个列表中删除匹配的对象。
此外,如果您正在使用 Kotlin 或想要使用,则可以使用id
过滤列表,然后将其从列表中删除。
val yourList = arrayListOf<Model>()
val removeList = yourList.filter { model ->
model.id == yourid
}
yourList.removeAll(removeList)
,
如果您不想使用removeIf
方法,则可以执行以下操作:
yourList.apply { removeAt( first { it.id == id } ) }