为电话簿设计一个数据结构,用于存储姓名和电话号码,以便我们可以搜索给定姓名的键,反之亦然。
我们可以如下使用2个 HashMap
Map<String,int>
Map<int,String>
但它需要两倍的内存。有人可以提出任何其他解决方案吗?
最佳答案
一个人可以拥有多个号码,一个号码可以属于多个人(家庭成员)。正如尼克所说,一般情况下,电话号码可以包含非数字字符。所有考虑,而不是Map<String,int>
你可能正在使用 Map<String,List<String>>
,或者只有指向字符串的指针(在 C++ 术语中),以避免冗余:Map<String*,List<String*>>
.
关于algorithm - 设计电话簿的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482606/