0

我正在尝试开发类似联系人应用程序的东西,我需要在其中添加/删除/搜索/排序联系人。所以,我使用 MyContact 对象的 ArrayList 作为数据结构。

MyContact 包含名称和编号,因此要对 ArrayList 进行排序,我认为在 ArrayList 中查找模式可能是一项耗时的任务。

目前我正在遍历每个元素并检查模式。我曾尝试先对列表进行排序,但这也很耗时。

请建议任何更好的在arraylist中搜索的方法,或者我是否应该切换到另一种数据类型,我认为在这个阶段这风险不大。

4

1 回答 1

2

听起来您正在尝试尽早优化。软件开发中的一个常见立场是先使其工作,然后在确定实际性能问题后进行优化。也就是说,您不是在寻求软件开发建议,而是在寻求编程建议。

在编程方面,这里有两件事需要优化;性能和代码。

为了保持代码干净,请尝试利用已经存在的框架/约定,而不是自己动手。看看Comparable接口和 JavaCollections类的使用。之后是一段时间以来一直是行业标准的 Apache Commons Collections 库。由于很多原因,Google 的 Guava 似乎正在取代 Commons Collections 作为标准,最值得注意的是更好的泛型支持。

至于性能,要排序或过滤,您需要评估每个记录/对象(至少一次),因为它是正确的顺序/包含在结果中。唯一真正的替代方法是在搜索之前对您的数据进行“索引”。为此,(Java)行业标准是 Lucene,但很可能对您的需求来说太过分了。

于 2012-12-21T20:40:19.633 回答