我從一個DTO對象返回大量的集合,並想知道是否有人可以指引我正確的方向。任何類型的集合都可以,但我不知道哪一個最適合返回大量對象。什麼是用於檢索大量DTO的最快java收集?
我知道這可以根據線程等改變,但我至少在尋找一般指導和基準。另外,我需要保留在標準Java集合中(沒有第三方庫)。
我從一個DTO對象返回大量的集合,並想知道是否有人可以指引我正確的方向。任何類型的集合都可以,但我不知道哪一個最適合返回大量對象。什麼是用於檢索大量DTO的最快java收集?
我知道這可以根據線程等改變,但我至少在尋找一般指導和基準。另外,我需要保留在標準Java集合中(沒有第三方庫)。
不可否認的說:如果你需要一個簡單的集合,比ArrayList應該表現得好,因爲它基於一個使用系統函數定義的快速數組。
如果您將初始容量設置爲更高的值(不知道您稱之爲大數),則速度會更快,因爲它會減少增量重新分配量。
任何其他集合都有某種類型的開銷,如尋找hashcode或beeing synchronized。
以正確尺寸初始化的ArrayList
(如果您知道要添加多少個DTO或上限)是最簡單且最小的Collection
,您會發現。通過在初始化時設置其大小,不需要調整其內部數組的大小,這是一種產生垃圾的操作。最好是直接使用一個非常低級的陣列,如果需要調整大小,則需要手動進行管理(這就是ArrayList
爲您所做的)。
要創建預定大小的ArrayList
,請使用ArrayList(int capacity)
構造函數。
DTOs是獨一無二的嗎? – RNJ
是的。所有的DTO都是獨一無二的。 – JoshC13
數組或ArrayList – irreputable