java - Java 世界中有可变键长的 Map 吗?

标签 java map hashmap

我需要一个 Map,但是当我调用 get(key, n) 时,它不仅应该返回具有搜索键值的所有记录,而且还应该返回键的最后 n 个有效位与搜索相同的所有记录key(例如应用类似 key&(1<<(n+1)-1) 的东西)。

是否已经在 J​​ava 中实现了类似的东西?

最佳答案

不完全是,但你可以使用 NavigableMap.subMap实现这一点。例如

NavigableMap<Integer, Value> map =
int keyBase = key & ~((1 << n)-1);
Map<Integer, Value> subMap = map.subMap(keyBase, true, keyBase + (1 << n), false);

如果要根据最低位而不是最高位进行搜索,则必须在添加和搜索之前反转位。这会将最低位、第二低位、第三低位等组合在一起。

关于java - Java 世界中有可变键长的 Map 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881060/

相关文章:

java - 如何在java中打印文件的第三列

perl - 为什么我会从链接的 map 调用中得到意想不到的结果?

java - 初始化 ArrayList 的静态映射

serialization - : hash table or BST in terms of serialization, 并发哪个更合适?

Java:找不到符号

java - 如何正确编写While循环头?

java - 即使在给出正确的引用后也会出现 nullpointerexception。请查看详情

c++ - std::map 中的容错键查找

java - Hashmap单键持有一个类。计算 key 并检索计数器

java - spring - 从类的静态字段中的属性文件中读取属性值