在科特林中分组和排序的最佳方式
Best way of grouping and sorting in kotlin
我有大量来自服务器的数据。我想对它们进行排序和分组。我尝试了一些代码,它工作正常。我只是想知道有没有更好的方法来优化代码,有助于提高效率。
val products = ABC()
products?.sortedBy { it.category }?.groupBy { it.category }
Abc
data class Abc(
val category: String? = null,
val categoryId: String? = null,
...// more property
)
你知道更好的方法吗?
利用您尝试对分组键进行排序的事实,您可以使用 TreeMap
.
等排序映射同时进行分组和排序
使用groupByTo
指定您希望groupBy
使用的地图。
val map = products.groupByTo(TreeMap()) { it.category }
当 groupByTo
创建组并将类别放入地图时,键将自动用于构建 Red Black Tree(这就是 TreeMap
的本质) .遍历 map.keys
将按排序顺序获取键。
我有大量来自服务器的数据。我想对它们进行排序和分组。我尝试了一些代码,它工作正常。我只是想知道有没有更好的方法来优化代码,有助于提高效率。
val products = ABC()
products?.sortedBy { it.category }?.groupBy { it.category }
Abc
data class Abc(
val category: String? = null,
val categoryId: String? = null,
...// more property
)
你知道更好的方法吗?
利用您尝试对分组键进行排序的事实,您可以使用 TreeMap
.
使用groupByTo
指定您希望groupBy
使用的地图。
val map = products.groupByTo(TreeMap()) { it.category }
当 groupByTo
创建组并将类别放入地图时,键将自动用于构建 Red Black Tree(这就是 TreeMap
的本质) .遍历 map.keys
将按排序顺序获取键。