3 回答

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
檢查 getDataList() 返回的列表類型;對(duì)于您的用例來(lái)說,它必須是 ArrayList - 如果它是 Linkedlist,則獲取索引調(diào)用會(huì)很繁重且耗時(shí)
將 limit-1 和 limit-2 情況移出 for 循環(huán)并退出循環(huán) limit-2 本身。

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
您不需要將新的 MainObject 分配給變量
將 MainObjects 列表更改為 LinkedList。添加操作對(duì)于 LinkedList 來(lái)說更有效,因?yàn)?ArrayList 必須在數(shù)組滿時(shí)重建數(shù)組 - 它非常耗時(shí)(或者只是創(chuàng)建具有限制大小的 ArrayList:new ArrayList<>(limit);)
getDataList() 方法應(yīng)返回 LinkedList

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
對(duì)于您的limit = 100
,顯示的代碼中沒有任何內(nèi)容可能會(huì)很慢。您當(dāng)然可以進(jìn)行一些低級(jí)優(yōu)化,如 Srini 提出的(“將 limit-1 和 limit-2 情況移到外部”),但罪魁禍?zhǔn)自谄渌胤剑阂丛跇?gòu)造函數(shù)中,要么在dataList::get
.
作為一個(gè)快速技巧,請(qǐng)dataList = new ArrayList<>(dataList)
在循環(huán)之前嘗試。
添加回答
舉報(bào)