根据其子列表方法大小对对象列表进行排序
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
列表。
我正在尝试制作自己的“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
列表。