kotlin - 如何按 Arraylist 多维分组
问题描述
位于子模型中时如何按“组”分组?
我试过这样做,但结果错误
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.groupBy { it.sub[0].group }
您得到的错误是因为sub
它是空的,并且您正在尝试获取第一个元素。
你可以做的是在尝试分组之前做一个过滤器:
mtop.filter{it.sub.isNotEmpty()}.groupBy{it.sub[0].group}
推荐阅读
- xcode - 如何在 Xcode 10.x/11.x 中重置自定义快捷方式?
- azure-active-directory - Office 365 用户的入职流程是什么样的?
- c# - UWP 应用 MissingMethodException 中的 Microsoft Store Services SDK
- apache - 捕获 SIGWINCH,在 apache(Redhat)中托管烧瓶应用程序时优雅地关闭
- c# - 无法访问已处置的对象。对象名称:使用后台队列时的“IServiceProvider”
- json - Postgres - json中的增量值
- video - FFmpeg 合并来自不同来源的具有不同比特率的两个文件
- magento - Magento 2 Ui 组件:如何为动态行设置可序列化字段
- google-apps-script - 基于脚本的过滤式查询基于列出的条目从另一个工作表中获取数据
- r - 列在 TRUE 值之前重复行值