java – 具有双向O(1)查找的数据结构.哈希表?
发布时间:2020-11-17 08:39:56 所属栏目:Java 来源:互联网
导读:我正在实施一个系统,我有一个名单列表,每个人有1个电话号码.我需要能够取一个名字并查找电话号码,或者拿一个电话号码并查找姓名. 我知道我可以通过两个哈希表来实现这一点 – 一个从名称到电话号码,一个从电话号码到名字.然后我可以在O(1)时间向任意方向查找.
我正在实施一个系统,我有一个名单列表,每个人有1个电话号码.我需要能够取一个名字并查找电话号码,或者拿一个电话号码并查找姓名. 我知道我可以通过两个哈希表来实现这一点 – 一个从名称到电话号码,一个从电话号码到名字.然后我可以在O(1)时间向任意方向查找.然而,这似乎是我存储了太多数据 – 每个名称和每个电话号码都存储了两次. 有没有办法更有效地做到这一点?我应该使用什么数据结构来存储姓名和电话号码? 如果相关,我用Java编码. 非常感谢! 解决方法Java没有提供开箱即用的双向哈希表.除非你愿意使用第三方库(这会为你隐藏两个哈希表)或者重新实现HashMap的重要部分< K,V>你依赖于两个哈希表的解决方案一样好. ;.
不一定:您可以使用代表电话号码的相同对象,在这种情况下,电话号码将有一个对象,其中两个对象存储在两个哈希表中. (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |