在科特林中分组和排序的最佳方式

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 将按排序顺序获取键。