相关疑难解决方法(0)

Map.clear()vs new Map:哪一个会更好?

我有一个Map作为语法Map<String, String> testMap = new HashMap<String, String>();.在此地图中可以有1000个数据.

当我的应用程序需要新的数据列表时,我必须清除Map.但是当我看到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;
    }
Run Code Online (Sandbox Code Playgroud)

我意识到clear方法循环n次(其中n是Map中的数据).所以我认为可以有一种方法来重新定义Map,因为testMap = new HashMap<String, String>(); 之前使用的Map将是Garbage收集的.

但我不确定这将是一个好方法.我正在研究移动应用程序.

你能指导我吗?

java collections performance android

90
推荐指数
4
解决办法
7万
查看次数

Java集合和垃圾收集器

关于Java Web应用程序性能的一个小问题.

我们假设我有List<Rubrique> listRubriques十个Rubrique对象.

A Rubrique包含一个products(List<product> listProducts)列表和一个clients(List<Client> listClients)列表.

如果我这样做,内存中究竟会发生什么:

listRubriques.clear(); listRubriques = null;
Run Code Online (Sandbox Code Playgroud)

我的观点是,因为listRubriques是空的,所以此列表之前引用的所有对象(包括listProductslistClients)很快就会被垃圾收集.但是因为Java中的Collection有点棘手,因为我的应用程序存在相当大的性能问题,我问的问题是:)

编辑:我们现在假设我的客户端对象包含一个List<Client>.因此,我的对象之间有一个循环引用.如果我listRubrique被设置为什么会发生什么null?这一次,我的观点是我的客户端对象将变得"无法访问"并可能造成内存泄漏?

java collections performance garbage-collection

13
推荐指数
2
解决办法
9672
查看次数