首页 > 解决方案 > 如何按 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))

对不起,我经常在这个论坛上提问,但从来没有帮助过别人,因为我是初学者,我的英语很差。谢谢你

标签: kotlinarraylistgroup-by

解决方案


mtop.groupBy { it.sub[0].group }

您得到的错误是因为sub它是空的,并且您正在尝试获取第一个元素。

你可以做的是在尝试分组之前做一个过滤器:

mtop.filter{it.sub.isNotEmpty()}.groupBy{it.sub[0].group}

推荐阅读