【发布时间】:2011-10-09 03:05:35
【问题描述】:
我有一个 Map 作为 Map<String, String> testMap = new HashMap<String, String>(); 的语法。
在这张地图中可以有 1000 个数据。
当我的应用程序需要新的数据列表时,我必须清除地图。但是当我看到 Map.clear() 的代码为
/**
* Removes all of the mappings from this map.
* The map will be empty after this call returns.
*/
public void clear() {
modCount++;
Entry[] tab = table;
for (int i = 0; i < tab.length; i++)
tab[i] = null;
size = 0;
}
我意识到 clear 方法会循环 n 次(其中 n 是 Map 中的数据数)。所以我认为有一种方法可以将该地图重新定义为testMap = new HashMap<String, String>();
并且以前使用过的地图将被垃圾收集。
但我不确定这是否是一个好方法。我正在开发移动应用程序。
你能指导我吗?
【问题讨论】:
-
这个问题已经发布很久了,但无论如何,谷歌会继续引导我们解决这个问题。因此,使用 clear 而不是 new 的另一个优势。您将能够将映射声明为最终映射,因此编译器将能够免费检测编程错误。对于其他类型的结构,“final”也将消除分配新内存的负担,使我们的代码(更快)更快。
标签: java android performance collections