在由用户定义的数据类型组成的arraylist中搜索

时间:2012-12-21 20:14:39

标签: java collections arraylist

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

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

目前我遍历每个元素并检查模式。 我试图先对列表进行排序,但这也非常耗时。

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

1 个答案:

答案 0 :(得分:2)

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

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

为了保持代码清洁,请尝试使用已经存在的框架/约定而不是自己编写框架/约定。看一下Comparable接口和Java Collections类的用法。之后是Apache Commons Collections库,它已经成为行业标准一段时间了。由于很多原因,Google的Guava似乎正在取代Commons Collections作为标准,最值得注意的是更好的Generics支持。

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