2012-09-27 67 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)構造函數。

相關問題