Kotlin 如何按Arraylist多维分组
位于子模型中时,如何按“组”分组 我试过这样做,但结果是错误的Kotlin 如何按Arraylist多维分组,kotlin,arraylist,group-by,Kotlin,Arraylist,Group By,位于子模型中时,如何按“组”分组 我试过这样做,但结果是错误的 mtop.groupBy { it.sub[0].group } 这是我的密码 // my model data class mTop(val kategori : String, val sub : ArrayList<mSub>) data class mSub(val id_menu : String, val nama_menu : String, val gambar : String, val gro
mtop.groupBy { it.sub[0].group }
这是我的密码
// my model
data class mTop(val kategori : String, val sub : ArrayList<mSub>)
data class mSub(val id_menu : String, val nama_menu : String, val gambar : String, val group : String)
// my activity
val mtop: ArrayList<mTop> = ArrayList()
val msub: ArrayList<mSub> = ArrayList()
mtop.add(mTop(header, msub))
//我的模型
数据类mTop(val kategori:String,val sub:ArrayList)
数据类mSub(val id_菜单:字符串,val nama_菜单:字符串,val gambar:字符串,val组:字符串)
//我的活动
val mtop:ArrayList=ArrayList()
val msub:ArrayList=ArrayList()
添加mtop(mtop(标题,msub))
对不起,我经常在这个论坛上问,但从来没有帮助过别人,因为我是一个初学者,我的英语很差。多谢各位
mtop.groupBy { it.sub[0].group }
您得到的错误是因为sub
为空,并且您正在尝试获取第一个元素
您可能要做的是在尝试groupBy之前进行筛选:
mtop.filter{it.sub.isNotEmpty()}.groupBy{it.sub[0].group}
您得到的错误是因为sub
为空,并且您正在尝试获取第一个元素
您可能要做的是在尝试groupBy之前进行筛选:
mtop.filter{it.sub.isNotEmpty()}.groupBy{it.sub[0].group}
或者,如果您想包含带有空子项的mtop:
mtop.groupBy{it.sub.firstOrNull()?.group}
,或者,如果您想包含带有空子项的mtop:mtop.groupBy{it.sub.firstOrNull()?.group}
。