当前位置: 首页 > 知识库问答 >
问题:

Java如何根据HashMap中的值返回前10个项目

钱振
2023-03-14

因此,我对Java非常陌生,因此我正在努力完成一个练习,将我的一个Python程序转换为Java。

我遇到了一个问题,我试图复制行为,从python以下将只返回排序的键(按值),而不是值:

popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)

在Java中,我做了一些研究,还没有找到一个足够简单的n00b示例,比如我自己或类似的方法。我找到了使用Guava进行排序的示例,但排序似乎返回了按键排序的HashMap。

除了上述内容之外,Python的另一个优点是我在Java中没有发现的,那就是能够轻松返回排序值的子集。在Python中,我可以简单地执行以下操作:

print "Top 10 Numbers: %s" % popular_numbers[:10]

在本例中,number\u dict是键、值对的字典,其中键表示数字1。。100,该值是数字(键)出现的次数:

for n in numbers:
 if not n == '':
   number_dict[n] += 1

最终结果会是这样的:

前10位数字:['27',11',5',8',16',25',1',24',32',20']

为了澄清,在Java中,我成功地创建了一个HashMap,我成功地检查了数字并增加了键、值对的值。我现在一直在排序,并根据值返回前10个数字(键)。

共有3个答案

宗政英才
2023-03-14

HashMap不是Java排序的,因此除了对所有键进行暴力搜索之外,没有真正的好方法来排序它们。尝试使用TreeMap:http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

姜凯风
2023-03-14

使用Java 8,要获取整数列表的前10个元素:

list.stream().sorted().limit(10).collect(Collectors.toList());

要获取贴图键的前10个元素,即整数,请执行以下操作:

map.keySet().stream().sorted().limit(10).collect(Collectors.toMap(Function.identity(), map::get));
姜增
2023-03-14
  1. 将地图的入口集()放入列表中
  2. 使用集合对此列表排序。排序和比较器,比较器根据其值对条目进行排序
  3. 使用列表的子列表(int,int)方法检索包含前10个元素的新列表

是的,它将比Python更加冗长:)

 类似资料:
  • 问题内容: 在Java中是否可以从方法返回两个或多个值到main?如果是这样,有可能吗?如果没有,我们怎么办? 问题答案: 你可以使用Java返回Class的对象。 如果要返回多个相关的值,则将它们封装到一个类中,然后返回该类的对象是有意义的。 如果要返回不相关的值,则可以使用Java的内置容器类(例如Map,List,Set等)。有关更多详细信息,请检查java.util包的JavaDoc。

  • 问题内容: 以下代码示例的输出是: {1–e = e2,2–e1 = e1} 我不明白对象如何能够覆盖对象中的键,但不能覆盖值。以我的理解,输出应该是: {1–e2 = e2,2–e1 = e1} 问题答案: 实际上,您将其倒退了。该值被覆盖。密钥没有被替换,因为就e和e2而言,它们是相同的。 您的输出是:

  • 我有一个简单的问题: 我有一个postgresql表:。 我如何最快获得最高的10分? 更新: 我将多次进行此查询,并以最快的解决方案为目标。

  • 边走边学Java(Python背景)。简单的单词计数程序在Java7代码(不能用J8!)。 我有一个单词的哈希图:计数对。现在我需要按计数(递减顺序)排序,并打破按字母顺序使用word的联系。 我正在寻找对这个想法的反馈: 遍历HashMap中的映射项(me) 使用me.getkey=K和me.getvalue=v new map.entry reverse_me=(V,K){不确定此语法} 将r

  • 我尝试了一些变体,但没有运气返回GraphQL中的地图。因此,我有以下两个对象: 我的模式如下: 有人能告诉我如何实现这一点,以便GraphQL神奇地处理这一点或另一种方法。 非常感谢!

  • 问题内容: 在android中,我正在创建用于url连接的线程。在线程中,我将响应消息存储在全局声明的字符串中。当我访问method方法时,它返回null。 当我调用该方法时,它返回null。 问题答案: 您真的只想使用它,尝试一下