微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于在Android手机中有效存储联系人的最佳数据结构

如何解决用于在Android手机中有效存储联系人的最佳数据结构

如果“打字时搜索联系人”必须快速并且一个联系人可以有多个电话号码,您将如何将联系人存储在 Android 手机中。

解决方法

我认为 Trie Tree 会是最好的。在姓名字符的末尾,您可以存储一个对象及其元素,例如电话号码数组、电子邮件变量和一些您想要的额外变量。

在搜索名称时,您可以遍历 Trie Tree 中的字符并按排序顺序显示至少 n 个名称。我认为 Trie 树会比任何其他数据结构都快。

,

您可以使用标准的 TreeMap<String,Contact> 来实现此功能(其中 Contact 将是一个存储电话号码等的类)。一种选择是使用 TreeMap.tailMap() 从用户迄今为止输入的内容开始获取条目的子地图(由原始地图支持,因此这应该很快)。您可以使用自定义比较器根据您的需要调整顺序(例如不区分大小写)

ps:这不能解决持久性问题,因此您可能希望从一开始就使用数据库,例如房间。前缀搜索通常可以通过搜索范围 (prefix,prefix + "\uffff") 来实现。对于数据库,通常会添加一个限制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。