【发布时间】:2022-01-07 17:22:40
【问题描述】:
我在地图中有数万条记录。映射键是s3://mybucket/some/path/2021/03/03/file.txt、s3://mybucket/some/path/2021/03/04/file.txt 之类的字符串,值是0 或1。
目前我用的是HashMap,但是内存占用太高了,我想减少一下。
我正在寻找一种键值对并利用关键部分可重用性的东西。 自然想到的是使用一些树结构来存储前缀。
有人能指出一个合适的实现吗,最好是轻量级的?
【问题讨论】:
-
很多值是 0 吗?如果是这样,您能否将“密钥不存在”视为“密钥存在但值为 0”?如果是这样,您可以使用...的HashSet的HashSet 否则,您可以使用...的HashMap的HashMap
-
@JeffHolt 哈希实现仍然非常占用内存,因为前缀没有被重用。
-
如果你有一个“hash of a hash of a hash....”,那么有没有个前缀重复。
标签: java dictionary trie prefix-tree