Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/java-range-as-map-key.html

java 数值范围作为键的 HashMap 实现

Java 笔记 Java 笔记


如果想要数值范围作为 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]