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

5

我从DTO对象返回大量的集合,想知道有没有人可以指点我正确的方向。任何类型的集合都可以,但我不知道哪种最适合返回大量对象的任务。

我知道这可能会因线程等问题而改变,但至少我正在寻找一般指导和基准。此外,我必须在标准Java集合范围内(没有第三方库)。


所有的DTO都将是唯一的。 - josh-cain
请查看此链接:http://aaronz-sakai.blogspot.co.uk/2009/01/java-collection-performance.html - RNJ
LinkedHashSet => 快速插入但增加了存储元素指针的内存。但如果这不会显著影响您的内存,您可以选择它。 - Mik378
根据您的使用意图选择集合,而不是看似的性能。 - parsifal
2个回答

3

正如irreputable所说:如果您需要一个简单的集合,那么ArrayList应该表现良好,因为它基于使用系统函数定义快速的数组。

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

任何其他集合都有一些开销,如查找哈希码或同步。


2
一个正确大小的ArrayList(如果你知道要添加多少DTOs或者一个上限)是你能找到的最简单和最小的Collection。通过在初始化时设置其大小,它不需要调整内部数组的大小,这个操作会产生垃圾。与直接使用底层的数组相比,它更好,并且如果需要调整大小,你需要手动管理数组(这就是ArrayList为你做的事情)。
要创建一个预设大小的ArrayList,请使用ArrayList(int capacity)构造函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接