2014-09-01 23 views
1

在android中,我使用hashmaps和sparsearrays和sparseintarrays。在我使用它們的函數中,有時候是臨時對象。在函數結束之前,清除地圖數據是否是一個好習慣?功能在android中結束時清除映射是否值得?

感謝

+0

它們的範圍僅限於該方法的對象嗎? – 2014-09-01 20:09:08

+0

是的,他們僅限於方法 – omega 2014-09-01 20:09:31

+4

然後,不,完成任何事情。 – Keppil 2014-09-01 20:09:55

回答

4

在Android中,我利用包含HashMap和sparsearrays和sparseintarrays的。在我使用它們的函數中,有時候是臨時對象。在函數結束之前,清除地圖數據是否是一個好習慣?

不,完成任何事情。

我想,如果你清除它,那麼你馬上回到內存而不是等待垃圾收集。那麼這不會使它工作嗎?

清除集合只會刪除對集合中項目的引用,所以您仍然必須等待垃圾回收才能恢復內存。

2

這是不必要的。由於hashmap對於函數是本地的,所以hashmap將被垃圾收集器收集,並且如果它是空的,它沒有區別。如果沒有其他參考,hashmap的內容也將被收集。它不會以更快的速度在地圖中收集。

因此清理它只是浪費時間。

如果你擔心內存,它肯定是一些非常大的對象。如果說是Bitmap,則可以撥打bmp.recycle()來幫助垃圾收集。