【问题标题】:How to remove duplicate value from object arraylist and sort如何从对象数组列表中删除重复值并排序
【发布时间】:2021-08-27 13:49:47
【问题描述】:

我有一个recyclerview,我在其中添加了 1 个加载更多数据的列表

我的要求是不允许在主数组列表和排序数组中添加重复的对象数据,但它不起作用。

我做了这样的事情来删除重复的数据,但它正在一个一个地删除所有数据

newElementsList.forEach { first ->
            mList.remove(first)
}

newElementsList 每 5 分钟获取一次新数据,mList 是主列表(它是在开始和加载时分配的值)

在模型中我添加了这个

override fun equals(other: Any?): Boolean {
            if (other !is ChatData) {
                return false
            }
            val that: ChatData = other as ChatData

            // Custom equality check here.
            return this.id == that.id
        }

但它正在从主列表中逐项删除

如何实现这一点,主数组列表和新数组列表具有相同的数据类型

任何帮助将不胜感激。

【问题讨论】:

    标签: android object arraylist comparison


    【解决方案1】:

    目前,逐个删除每个元素会产生开销,此用例的更好替代方案是 TreeSet(添加、删除和包含等操作的 log(n) 时间)

    您可以使用TreeSet.addAll() 传递集合,它会为您维护顺序并确保不存在重复项。

    确保在您的模型上实现Comparable 接口,以便集合推断自然顺序。

    有关用法的更多信息,请阅读文档:

    1. 树集 - https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html
    2. 可比接口 - https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2013-12-03
      • 2022-01-03
      相关资源
      最近更新 更多