Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 从两个列表中获取不常见的元素 – KOTLIN大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个相同的模型类(stuDENT)列表,下面给出了示例学生对象结构,

{
    "_id": "5a66d78690429a1d897a91ed","division": "G","standard": "X","section": "Secondary","lastName": "Sawant","middlename": "Sandeep","firstName": "Shraddha","pin": 12345,"isEditable": true,"isTracked": false
}

一个列表有3个对象,另外2个.比方说,列表A有1,2,3个学生,列表B有1,2个

所以我的问题是有任何内置函数通过比较id来获取不常见的元素吗?如果不是我怎么能解决这个问题.

仅供参,以下是我要解决的两种方法,但却失败了.

方法1.

internal fun getDisTinctstudents(studentsList: List<students>,prefstudents: List<students>): List<students> {
    val consolidated = prefstudents.filter {
        prefstudents.any { students: students -> it._id == students._id }
    }
    return prefstudents.minus(consolidated)
}

方法2.

internal fun getDisTinctstudents(studentsList: List<students>,prefstudents: List<students>): List<students> {
    val consolidatedstudents = studentsList + prefstudents
    val disTinctstudents = consolidatedstudents.disTinctBy{ it._id }
    return prefstudents.minus(disTinctstudents)
}

任何形式的帮助将不胜感激.

谢谢

解决方法

更多的Kotlin方式来实现Ahmed Hegazy发布的内容.地图将包含元素列表,而不是键和计数.

使用HashMap和Kotlin内置插件. groupBy使用Lambda(在本例中为id)中定义的键创建@L_485_1@map,以及一个项目列表(此场景的列表)

然后筛选出列表大小不是1的条目.

最后,将其转换为单个学生列表(因此flatMap调用)

val list1 = listOf(student("1","name1"),student("2","name2"))
val list2 = listOf(student("1","name2"),student("3","name2"))

val sum = list1 + list2
return sum.groupBy { it.id }
    .filter { it.value.size == 1 }
    .flatMap { it.value }

大佬总结

以上是大佬教程为你收集整理的android – 从两个列表中获取不常见的元素 – KOTLIN全部内容,希望文章能够帮你解决android – 从两个列表中获取不常见的元素 – KOTLIN所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。