java - 使用Map实现高效的搜索过程-java

标签 java

我正在用 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/

相关文章:

java - 如何找到 Java 项目中所有可能抛出 RuntimeException 的位置?

Java GC - Minor GC Collection 是 STW 事件吗?

java - Java 中的数组 for 循环和 RNG

java - addCookie 方法不会将 cookie 添加到 httpServletResponse

java - 在屏幕中的不同 Fragment 之间共享一个 ViewModel 实例

java - JobExplorer spring 批处理和表前缀

java - 如何在 Eclipse 中调试时访问对象和变量

java - 如何从 bean 动态调用方法

java - 递归地从链表中删除节点

java - 有关在电子邮件签名中实现图像的一些问题?