在 Kotlin 中对 ArrayList 不起作用



我正在尝试从 Kotlin 中的 ArrayList 中删除重复项。首先,我从其他地方获得排序新闻,然后将其添加到名为newsItems的列表中,然后我正在尝试删除重复项,但重复项仍然存在。我在这里做错了什么

sortedNewsItems = nsItems!!.sortedWith(compareByDescending({it!!.timeStamp}))
newsItems?.addAll(sortedNewsItems!!)
newsItems?.distinct()
Log.e("first item name ",sortedNewsItems?.get(0)?.title)
recyclerView.adapter.notifyDataSetChanged()
distinct

不会从集合中删除重复项,而是返回删除重复项的新集合。您忽略了distinct的返回值,因此调用不起作用。

最好的方法是,而不是addAll使用函数union

val firstList: ArrayList = arrayListOf(1, 2, 3, 4)
val secondList: ArrayList = arrayListOf(1, 5, 6, 7, 8)
val addAllList = firstList.addAll(secondList) //1,2,3,4,1,5,6,7,8
val unionList = firstList.union(secondList) //1,2,3,4,5,6,7,8

union- 返回包含两个集合中的所有不同元素的集合。

返回的集合保留原始元素的迭代顺序 数组。其他集合中唯一的元素是 最后按其他集合的顺序迭代。

获取包含两者中包含的所有元素的集合 集合使用相交。

你也可以尝试toSet((

val newItems = postList //postList id old list
newItems.addAll(_postList) // _postList is new list
postList = newItems.toSet().toMutableList()

最新更新