根据其子列表方法大小对对象列表进行排序

Sort a List of objects based in its Sublist method size

我正在尝试制作自己的“Facebook 反应栏”,但遇到了问题,我需要根据子列表方法大小对对象列表进行排序,让我解释一下!

我有一个 ReactionModel,它有一个 属性“用户名”,它是使用它的那些用户的用户名字符串列表。

我有一个代表反应的 ReactionModel 列表,例如:

val reactionsList: List<ReactionModel> = listOf(
ReactionModel(listOf("a","b","c")),
ReactionModel(listOf("z")),
ReactionModel(listOf("f","d"))
)

在这种情况下,第一个最大,然后是第三个,最后是第二个。

我需要对反应列表进行排序,并根据用户名的大小对其进行递减 属性。

输入:

ReactionModel(listOf("a","b","c")),
ReactionModel(listOf("z")),
ReactionModel(listOf("f","d"))

输出:

ReactionModel(listOf("z")),
ReactionModel(listOf("f","d")),
ReactionModel(listOf("a","b","c"))

我尝试使用 forEach 但没有成功。我在这里发现了一些问题,但只比较了两个列表。希望找到任何答案,感谢您的宝贵时间!!

编辑: 适用于 Android,因此答案可以在 Java 或 Kotlin

使用 Kotlin,您可以使用单行代码,

reactionsList.sortedByDescending { it.{getYourListHere}.size }

sortedBy 可用于此,我假设 ReactionModel 中的 string 列表的名称是 stringList.

 val sortedList = reactionsList.sortedBy {
                        it.stringList.size
                  }
    

sortedBy 不会更改现有的 list,但 returns sorted 列表。