我正在实现一个系统,其中我有一个姓名列表,每个人都有一个电话号码。我需要能够输入一个姓名并查找电话号码,或输入一个电话号码并查找姓名。
我知道我可以通过拥有两个哈希表来实现这一点-一个用于从姓名到电话号码,另一个用于从电话号码到姓名。然后,我可以在任何方向上以O(1)的时间进行查找。然而,这似乎存储太多数据-每个姓名和每个电话号码都存储了两次。
有没有更高效地实现这一点的方法?我应该使用哪种数据结构来存储姓名和电话号码?
如果相关的话,我是在Java中编码。
谢谢!
我知道我可以通过拥有两个哈希表来实现这一点-一个用于从姓名到电话号码,另一个用于从电话号码到姓名。然后,我可以在任何方向上以O(1)的时间进行查找。然而,这似乎存储太多数据-每个姓名和每个电话号码都存储了两次。
有没有更高效地实现这一点的方法?我应该使用哪种数据结构来存储姓名和电话号码?
如果相关的话,我是在Java中编码。
谢谢!