【发布时间】:2015-06-14 13:45:36
【问题描述】:
我必须为我的需要选择一种数据结构,我正在解释以下值的条件
abc,def,rty,ytr,dft which all are map to row R1B1 (actully key is combination of R1+B1)
abEERc,dFFFef,rGGty which all are map to row R1B2 (actully key is combination of R1+B2)
KEY VALUE
abc,def,rty,ytr,dft ---> R1B1
abEERc,dFFFef,rGGty ---> R1B2
现在,例如,假设我得到ytr,那么我将能够检索R1B1
或者,假设我得到了rGGty 的值,那么我就可以检索到R1B2
现在的情况是,问题在于搜索、复杂性和时间,因为事情必须按顺序进行
例如,它会首先选择第一行搜索ytr,它会先匹配abc,这将不匹配然后必须匹配def它不会再次匹配然后它会匹配rty 也不会匹配,然后它最终将与 ytr 匹配,最后它会找到密钥 R1B1 最终
类似地,如果需要搜索第二个字符串让我们说rGGty,那么它将扫描第一行,其中找不到该值,然后搜索将继续到第二行,并且在第三个元素的第二行中它会得到rGGty 作为元素,那么它将检索 R1B2 作为值
比方说,如果把这个东西放在 map 中,那么一个序列搜索就会在 key 上进行,然后只有我们才能找到对应的 value
请大家告诉我哪个是我可以在 java 中实现的最好的数据结构,我必须在非常快的时间内搜索键项以找到相应的值,这也不会影响性能 ,那种数据结构性能应该很高
如果有人可以建议我展示如何使用数字树来实现这一点,那也太好了
【问题讨论】:
-
为什么不直接使用 HashMap?
-
将字符串映射到值的哈希表和存储从值到字符串“集”的逆映射的哈希表。
-
@OliverCharlesworth 感谢您的建议,但仍然无法掌握请您详细解释一下,如果可能的话,一点代码可以帮助理解更多
-
@saadtaame 感谢您的建议,请您详细说明,以便我了解更多请提前谢谢
-
你为什么要问两次完全相同的问题?
标签: java data-structures tree