【发布时间】:2020-07-15 16:52:46
【问题描述】:
鉴于以下TreeMap:
Map<Double, Integer> treeMap = new TreeMap<Double, Integer>() {{.
put("52.1", 1);
put("53.4", 2);
put("57.1", 3);
put("59.4", 7);
put("60.2", 11);
put("71.6", 16)}};
对于给定的 double 返回最近的 n 个匹配项(在两个方向上)的最佳方法是什么?例如,n=2 和 "58.0" 将返回 53.4、57.1、59.4、60.2
【问题讨论】:
-
看看
lowerEntry()和higherEntry()以及简单的for循环 -
或
headMap()和tailMap()。查看NavigableMap API,有很多选择。 -
使
NavigableMap的扩展方法工作的关键部分是将String数据(例如,“53.4”)转换为Double实例。您的代码没有说明这一点。您能否提供您实际的、可编译的代码,以便我们帮助解决那里的任何问题?顺便说一句,你在这里使用double-brace initialization,我强烈反对。 -
双关语不是故意的。
标签: java dictionary treemap