我正在实施一个系统,其中我有一个姓名列表,每个人都有 1 个电话号码。我需要能够获取姓名并查找电话号码,或者获取电话号码并查找姓名。
我知道我可以通过拥有两个哈希表来做到这一点——一个从名字到电话号码,一个从电话号码到名字。然后我可以在 O(1) 时间内朝任一方向查找。然而,这似乎我存储了太多数据——每个名字和每个电话号码都存储了两次。
有没有办法更有效地做到这一点?我应该使用什么数据结构来存储姓名和电话号码?
如果相关的话,我正在用 Java 编码。
非常感谢!
我正在实施一个系统,其中我有一个姓名列表,每个人都有 1 个电话号码。我需要能够获取姓名并查找电话号码,或者获取电话号码并查找姓名。
我知道我可以通过拥有两个哈希表来做到这一点——一个从名字到电话号码,一个从电话号码到名字。然后我可以在 O(1) 时间内朝任一方向查找。然而,这似乎我存储了太多数据——每个名字和每个电话号码都存储了两次。
有没有办法更有效地做到这一点?我应该使用什么数据结构来存储姓名和电话号码?
如果相关的话,我正在用 Java 编码。
非常感谢!