我正在用 Java 创建电话簿 API。我的电话簿中的每个名字都映射到一组电话号码和地址。我想构建一个搜索功能,可以使用搜索参数作为名称或电话号码本身来搜索电话簿中的条目。
我的方法是将我的所有条目添加到:
Map <String, PhoneNumber> book = new HashMap <String,PhoneNumber>();
book.put("Name1",new PhoneNumber(new Integer(12345),new Integer(123456));
book.get("Name1");
// PhoneNumber is my class which can have different types of phone numbers
我想同时按作为键的名称和值进行搜索。我无法使用 HashMap
来做到这一点。有没有办法更好地实现高效的搜索过程?
最佳答案
不要使用 map 作为电话簿。太有限了。而是创建一个 PhoneBook 类。该类中有 2 张 map ,一张用于按名称搜索,一张用于按号码搜索。创建一个 add() 例程,将 Info 添加到两个映射。
public class PhoneBook {
private Map<String,Info> byNumber;
private Map<String,Info> byName;
}
其中“Info”是一个类,可以告诉您有关该人的所有信息。
关于java - 使用Map实现高效的搜索过程-java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3796381/