从sortedmap获取前n个元素

奥兰多

我尝试将字符串的频率存储在TreeMap中,以便获得特定用户最常用的字符串。现在,我想做的是编写一个方法,使我从排序后的地图中返回前n个项目(经常使用的排名靠前的项目)。

public TreeMap<String,Integer> getKeywords(int n){
     //Can check if sorted for efficiency!

    println keywords.size();
    keywords=keywords.sort{a,b->
        //sort the map desc by value
        b.value <=> a.value;
    }
    TreeMap<String,Integer> result=new TreeMap<>();
    //need to fill result with first n elements from keywords
    return result;
}

我尝试了几种方法,例如.each()在关键字上使用关键字或通过其keySet进行迭代,但没有一种方法可以保留其原始顺序,最终导致结果未排序。帮助和提示表示赞赏!

保罗·波丁顿

我不了解Groovy,所以我只能评论Java。

ATreeMap使条目按键(而不是值)排序。在您的情况下,它使用的自然顺序String

如果要Map保持插入顺序,请使用LinkedHashMap如果这样做,则需要将返回类型更改为Map<String, Integer>

由于不清楚某些变量的类型,因此我无法编写详细的代码,但是基本步骤如下:

  1. List keywords根据value字段排序
  2. Map<String, Integer> map = new LinkedHashMap<String, Integer>();
  3. 遍历中的第一个n项目keywords并进行填充map因为您使用的LinkedHashMap是条目,所以它们将保持正确的顺序。
  4. return map;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表中获取前n个元素

来自分类Dev

获取所有/某些元素的列表的前 n 个元素

来自分类Dev

如何获取Django中的前N个元素?

来自分类Dev

C ++从数组中获取前n个元素

来自分类Dev

从BigQuery表中的数组获取前N个元素

来自分类Dev

获取数据框中列的前n个元素的均值

来自分类Dev

获取指定char数组arduino的前n个元素

来自分类Dev

C ++从数组中获取前n个元素

来自分类Dev

获取前N个元素,但是如果N + 1等于N,则也返回N + 1

来自分类Dev

从列表中获取X个前元素

来自分类Dev

获取迭代器的前n个元素的最简单方法

来自分类Dev

我可以从枚举中获取前n个元素,然后仍然使用其余的枚举吗?

来自分类Dev

从System.Collections.Generic.IEnumerable中获取前n个元素

来自分类Dev

如何使用下划线获取对象的前n个元素?

来自分类Dev

从大型数据集中的R中的data.frame获取排序的前N个元素

来自分类Dev

如何从无限生成器列表中获取前n个元素?

来自分类Dev

Kotlin优化使用过滤器获取前n个元素

来自分类Dev

合并,洗牌和获取列表的前n个元素的更短方法

来自分类Dev

如何在Hive中获取数组中的前n个元素

来自分类Dev

是否可以获取Spark Streaming中每个RDD的前n个元素?

来自分类Dev

使用jQuery获取具有<td>作为子元素的前N个<tr>

来自分类Dev

获取numpy矩阵的前n个非零元素

来自分类Dev

如何查找元素的前N个同级

来自分类Dev

数组的前n个元素(按属性)

来自分类Dev

如何选择前N个元素?

来自分类Dev

numpy数组中行的前n个元素

来自分类Dev

猪:每组获取前n个值

来自分类Dev

从元组获取前n个结果

来自分类Dev

猪:获取每组的前n个值

Related 相关文章

热门标签

归档