我正在从 DTO 对象返回大量集合,并想知道是否有人能指出我正确的方向。任何类型的集合都可以,但我不知道哪一个最适合返回大量对象的任务。
我知道这可以根据线程等进行更改,但我至少在寻找一般指导和基准。此外,我需要保留在标准 Java 集合中(没有第三方库)。
我正在从 DTO 对象返回大量集合,并想知道是否有人能指出我正确的方向。任何类型的集合都可以,但我不知道哪一个最适合返回大量对象的任务。
我知道这可以根据线程等进行更改,但我至少在寻找一般指导和基准。此外,我需要保留在标准 Java 集合中(没有第三方库)。
正如不可靠的说法:如果您需要一个简单的集合,那么 ArrayList 应该表现得很好,因为它基于一个使用 System 函数定义快速的 Array。
如果您将初始容量设置为更高的值(不知道您所说的大数),那么它会更快,因为它减少了增量重新分配的数量。
任何其他集合都有某种开销,例如查找哈希码或蜜蜂同步。
以ArrayList
正确大小初始化(如果您知道要添加多少 DTO 或上限)是Collection
您会发现的最简单和最小的。通过在初始化时设置它的大小,它不需要调整其内部数组的大小,这是一个产生垃圾的操作。最好直接使用数组,这非常低级,如果需要调整大小,您需要手动管理(这就是ArrayList
为您所做的)。
要创建一个 pre-sized ArrayList
,请使用ArrayList(int capacity)
构造函数。