程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Kotlin 根据 id大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Kotlin 根据 id?

开发过程中遇到Kotlin 根据 id的问题如何解决?下面主要结合日常开发的经验,给出你关于Kotlin 根据 id的解决方法建议,希望对你解决Kotlin 根据 id有所启发或帮助;

目前将两个数据类合并为另一个数据类的最佳 kotlin 惯用方法是什么:

Data class A:
ID: Int,name: String

Data class B:
ID: Int,note: String

Data class C:
data1: A,data2: B

val result = mutablelivedata<List<C>>()
val array1:List<A> = getA()
val array2:List<B> = getB()

array1 和 array2 有 ID,我需要一个新列表,其中包含基于 array1 的 C 类型对象,以及我根据 array2 中的 ID 找到的额外数据。在 Java 上,我会遍历 array1,搜索 array2 中的 ID 并在每次迭代中构造一个新对象,将其添加到“结果”中,你如何使用 Kotlin 实现这一点?

到目前为止我尝试过的,它似乎有效,但它不是 kotlin 风格的:

            val array1 = getA()
            val array2 = getB()
            val resultTemp: ArrayList<C> = arraylistof()
            for (obj in array1 ) {
                var noteString = ""
                for (obj2 in array2) {
                    if (obj2.ID == obj1.ID) {
                        noteString = obj2.note
                    }
                }
                val objC = C(obj.ID,obj,noteString)
                resultTemp.add(objC)
            }
            result.value = resultTemp

解决方法

您不清楚 B 的实例是否可以在 C 中为空。如果为真,则简单

val result = arrayA.map { a -> C(a,arrayB.find { a.id == it.id }) }

其他

val result = arrayA.mapNotNull { a -> arrayB.find { a.id == it.id }?.let { C(a,it) } }

大佬总结

以上是大佬教程为你收集整理的Kotlin 根据 id全部内容,希望文章能够帮你解决Kotlin 根据 id所遇到的程序开发问题。

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

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