【发布时间】:2021-11-22 17:06:47
【问题描述】:
我有一个值映射,其中键是数字,值是字符串中数字出现的次数
示例:
6644241333431
{6:2,4:4,2:1,3:4,1:2}
我想得到出现次数最多的数字,如果两个数字相等,则取较小的那个。 我觉得可以用“.sortedBy{ (key, value) -> ... }”甚至“compareBy{ it.first }.thenBy{it.second}”来完成。
【问题讨论】:
-
我只是想解释一下地图的样子,我可能用错了字符来困住我的数字对不起:/ 是的,正如你所说的
-
好的,那你为什么要排序呢?您可以简单地迭代条目即可获得最大值。这将是线性时间,并且比排序更快
-
首先添加,我用我知道的方式(一些“if”和循环)实现了这个方法,就像我每次编码一样。但是我正在尝试做所有不同的事情并且“做得更好”,因为我意识到那时我并没有变得更好,所以我想知道是否有更好的方法来获取出现次数最多的数字(我正在寻找将其放入.key[0] 点)。但我猜你是对的,它在硬件上更重:/所以不是很有用
-
等等,所以你真的不需要排序,只需要最大值?
-
是的,但我已经知道如何获得最大价值,我也在寻找更多关于排序的知识
标签: sorting dictionary kotlin