- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作 TreeMap。当我运行这段代码时,它给出了我想要的结果。
TreeMap<String, Integer> dept = new TreeMap<>();
dept.put("Testing", 1);
dept.put("Training", 2);
dept.put("Automation", 3);
dept.put("Web Development", 4);
dept.put("Progamming", 5);
dept.put("Sales", 6);
dept.put("Housekeeping", 7);
SortedMap<String, Integer> subDept = dept.subMap("Sales","Training\0");
subDept.forEach( (name, id) -> System.out.println(name + " -> " + id));
Output: Sales -> 6 Testing -> 1 Training -> 2
现在,我已更改 TreeMap 以采用比较器并尝试获取子图。
TreeMap<String, Integer> dept = new TreeMap<>(Comparator.reverseOrder());
SortedMap<String, Integer> subDept = dept.subMap("Training", "Sales\0");
但是,我得到的结果是
Training -> 2 Testing -> 1
而不是
Training -> 2 Testing -> 1 Sales -> 6
为什么在使用反向比较器时,将\0 附加到 submap 的第二个参数不会使其成为闭范围?或者,我在代码中遗漏了一些东西吗?
最佳答案
如果顺序相反,“Sales\0”
位于“Sales”
之前。
附加 \0
是一种仅适用于字符串的 hack,并且仅适用于按字典顺序排列的字符串。对于这种情况,您必须将字符串更改为按字典顺序位于 Sales
之前的字符串,例如销售员
。
一种更简单、更可靠的方法是使用提供的方法来获取封闭范围:
dept.subMap("Training", true, "Sales", true)
关于java - 使用比较器时 TreeMap 行为的 Submap(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50676808/
我有一个地址组件,无论该国家/地区是否是罗马尼亚,我都希望有不同的行为。 我想要这样的东西: 这可能吗? 最佳答案 我发现您可以创建一个 t
根据这篇文章, Time complexity of TreeMap operations- subMap, headMap, tailMap subMap() 本身的复杂度是 O(1),而 O(n)
关于 SortedMap.subMap 这是 SortedMap.subMap 的 API : SortedMap subMap(K fromKey, K toKey) : Returns a vie
我正在制作 TreeMap。当我运行这段代码时,它给出了我想要的结果。 TreeMap dept = new TreeMap<>(); dept.put("Testing", 1); dept.put
我已经实现了几次 NavigableMap,但它似乎总是比应该做的多一些。虽然它是一个非常大的接口(interface),但诸如 java.util.AbstractMap 和 Guava 的 For
有谁知道像 subMap、headMap 这样的 TreeMap 操作的时间复杂度。尾图。 get、put等操作的时间复杂度是O(logn)。但是 javadoc 并没有说明上述操作的复杂性。 我能想
这对我来说似乎太棘手,无法正确执行此操作。 我有一个TreeMap ,我正在获取其中的子图: public static reqObj assignObj(reqObj vArg, i
我有一个 Guava TreeMultimap ,它将 Date 键映射到某个值。 我希望能够过滤此 map 以查找 key 在特定日期范围内的位置。 由于 map 已排序,应该可以非常快速地完成此操
public NavigableMap subMap(K fromKey, boolean fromInclusive,
我是一名优秀的程序员,十分优秀!