最近我一直在致力於Collections
,並且我有一個潛在巨大的後端處理返回的項目列表。 比如我List
中有100個項目,我遍歷這個列表中最for loop
下面提到 -在集合上處理大型項目
for (final Iterator i = listItems.iterator(); i.hasNext();) {
for (final Iterator it = hugeListItems.iterator(); it.hasNext();) {
/* For each of the item in this outermost for loop I have another
List of 1000 items to be processed in the inner for loop,
so that would potentially lead to huge amount of processing, in my case
(100*1000 times) */
}
}
所有這些項目的處理後,將被添加到地圖。
這些項目的處理需要大量的時間來達到我的應用程序的整體性能。我嘗試在for循環和Eclipse中打印Map的大小(我在Eclipse IDE上工作),我可以看到線程執行停止在ModelContext Thread
,並且控制檯在每次執行內部循環(1000)後緩慢地打印映射的大小項目),這在時間效率方面非常糟糕。有沒有辦法將這些操作分解爲更小的模塊並提高時間效率?
有人可以請建議/建議一個更好的方法來處理這些龐大的項目列表(考慮到後端返回的項目可能會隨着時間的推移而增長)?我的新方法應該以合理的幅度縮短執行時間,否則我的應用程序的整體性能將會很糟糕。
有沒有更清潔和有效的方式來處理這些日益罕見的情況?
謝謝大家。
對於任何一臺電腦來說'100 * 1000'都無法接近大數目。對象是什麼樣的?你在做什麼樣的處理? – Keppil
我只是以爲它可能會導致一個OutOfMemoryError,這是否有一個更清潔和有效的方式來處理巨大的列表項?就像我的例子一樣..你能否給我提供一個以更簡單,更省時的方式處理巨大列表項的例子? – user3652212
我也將編輯我的問題,以刪除我的初始文章中的OutOfMemoryError部分。 – user3652212