所以我对 Java 很陌生,因此我正在努力通过练习,将我的一个 Python 程序转换为 Java。
我遇到了一个问题,我试图复制行为,从 python 以下将只返回排序的键(按值),而不是值:
popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)
在 Java 中,我做了一些研究,但还没有为像我这样的 n00b 或类似方法找到足够简单的样本。我找到了使用 Guava 进行排序的示例,但排序似乎返回了一个按键排序的 HashMap。
除了上述之外,我在 Java 中没有发现的关于 Python 的其他优点之一是能够轻松返回已排序值的子集。在 Python 中,我可以简单地执行以下操作:
print "Top 10 Numbers: %s" % popular_numbers[:10]
在此示例中,number_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 个数字(键)。