我有一个非常常见的任务,我真的想要使用Java 8的流函数来解决。我仍然试图掌握涉及这个的大多数部分,所以我希望我没有理解任何错误。< / p>
我有一个数据库,我从中获取数据以生成LinkedHashMap并将其传递给我的函数以从中提取前n个值,并以有序的方式返回仅包含这n个值的映射。我真的想用教育目的使用流函数解决这个问题(更个性化,没有老师问我这个问题)。
我构建这个函数,期望流函数在后台执行算法,但是一旦我用这些数据显示图表,很明显它是不正确的。我试图在文档/网站上找到我的答案,但我找不到任何有用的东西。
到目前为止,我提出的工作并不正常,我觉得我可能在这里理解错误了:
private Map<String, Number> getTopValuesDataMap(Map<String, Number> chartDataMap) {
return chartDataMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Comparator.comparing(Number::intValue).reversed())).limit(12)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
}
感谢先进的任何帮助。
编辑:
似乎错误在于其他地方。已经注意到这个功能毕竟是正常的。需要做更多的测试。
非常感谢