检索大量DTO的最快的java集合是什么?

时间:2012-09-27 19:20:49

标签: java performance collections

我正在从DTO对象返回大量的集合,并想知道是否有人能指出我正确的方向。任何类型的集合都可以,但我不知道哪一个最适合返回大量对象的任务。

我知道这可以根据线程等进行更改,但我至少在寻找一般指导和基准。此外,我需要保留在标准Java集合中(没有第三方库)。

2 个答案:

答案 0 :(得分:3)

正如无可争议的说:如果你需要一个简单的集合,那么ArrayList应该表现良好,因为它基于一个数组,根据定义使用系统函数是快速的。

如果您将初始容量设置为更高的值(不知道您所谓的大数字),那么它会更快,因为它会减少增量重新分配的数量。

任何其他集合都有某种开销,例如寻找哈希码或同步。

答案 1 :(得分:2)

以正确的大小初始化的ArrayList(如果您知道要添加多少DTO,或者上限),您将找到最简单,最小的Collection。通过在初始化时设置其大小,它不需要调整其内部数组的大小,这是一个产生垃圾的操作。最好直接使用一个非常低级别的数组,如果需要调整大小,那么你需要手动管理(这就是ArrayList为你做的事情。)

要创建预先调整大小的ArrayList,请使用ArrayList(int capacity)构造函数。