如果想要数值范围作为 HashMap 的键,如 1 到 3 的数值映射到同一个值,Google 的 Guava 给出了现成的相关实现,那就是 RangeMap 类。
示例操作
RangeMap 它是一个接口,它的实现只有 TreeRangeMap 一个类,内部其实就是有序哈希对象 TreeMap,具体示例如下:
RangeMap<Integer, String> rangeMap = TreeRangeMap.create();
rangeMap.put(Range.atMost(188), "knowledge");
rangeMap.put(Range.openClosed(188, 2020), "dict");
rangeMap.put(Range.downTo(2020, BoundType.OPEN), ".com");
System.out.println(rangeMap);
输出结果如下:
[(-∞..188]=knowledge, (188..2020]=dict, (2020..+∞)=.com]