2012-09-27 31 views
5

我从一个DTO对象返回大量的集合,并想知道是否有人可以指引我正确的方向。任何类型的集合都可以,但我不知道哪一个最适合返回大量对象。什么是用于检索大量DTO的最快java收集?

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

+0

DTOs是独一无二的吗? – RNJ

+0

是的。所有的DTO都是独一无二的。 – JoshC13

+2

数组或ArrayList – irreputable

回答

3

不可否认的说:如果你需要一个简单的集合,比ArrayList应该表现得好,因为它基于一个使用系统函数定义的快速数组。

如果您将初始容量设置为更高的值(不知道您称之为大数),则速度会更快,因为它会减少增量重新分配量。

任何其他集合都有某种类型的开销,如寻找hashcode或beeing synchronized。

2

以正确尺寸初始化的ArrayList(如果您知道要添加多少个DTO或上限)是最简单且最小的Collection,您会发现。通过在初始化时设置其大小,不需要调整其内部数组的大小,这是一种产生垃圾的操作。最好是直接使用一个非常低级的阵列,如果需要调整大小,则需要手动进行管理(这就是ArrayList为您所做的)。

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

相关问题