【问题标题】:Remove a value from ArrayList<Custom> without running a loop从 ArrayList<Custom> 中删除一个值而不运行循环
【发布时间】:2019-11-04 09:01:29
【问题描述】:

我有一个 CustomObject 列表,我希望从列表中删除一个具有相同 ID(CustomObject 属性)的值。 现在这可以通过使用循环来完成。但这对我来说似乎是一个非常不必要且效率低下的代码。有没有其他方法可以获取带有 id 的特定对象?

【问题讨论】:

标签: android arraylist


【解决方案1】:

如果你不想使用removeIf 方法,你可以这样做:

yourList.apply { removeAt( first { it.id == id } ) }

【讨论】:

    【解决方案2】:

    如果您的项目的 min 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)
    

    【讨论】:

    • @Parth,你试过了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2021-05-21
    • 2012-05-31
    • 2016-09-27
    相关资源
    最近更新 更多