相关疑难解决方法(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万
查看次数

清空一个ArrayList或者只是创建一个新的ArrayList并将其旧的垃圾收集?

清空集合(在我的情况下是一个ArrayList)与创建一个新集合(并让垃圾收集器清除旧集合)的优点和缺点是什么.

具体来说,我有一个ArrayList<Rectangle>list.当某种情况发生时,我需要清空list并用其他内容重新填充.我是应该打电话list.clear()还是只是制作一个新的ArrayList<Rectangle>并让旧的垃圾收集?每种方法的优缺点是什么?

java collections garbage-collection arraylist

38
推荐指数
2
解决办法
3万
查看次数

将一个数组列表替换为其他列表

在我的业务逻辑中,我想用另一个列表完全替换一个列表.

以下方法是否正确?

public class TestListReplacement {

    public static void main(String[] args) {

        List<String> values= new ArrayList<String>();
        values.add("a");
        values.add("b");
        values.add("c");
        values.add("d");
        values.add("e");
        values.add("f");

        List<String> valuesNew= new ArrayList<String>();
        valuesNew.add("g");
        valuesNew.add("h");
        valuesNew.add("i");
        valuesNew.add("j");
        valuesNew.add("k");

        values= valuesNew;
        for(String val:values){
            System.out.println(val);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但我想知道,在某些用例中,它可能无法正常工作.

java collections list arraylist

0
推荐指数
1
解决办法
1887
查看次数

Android列表(ArrayList,List等):addAll()vs重新定义引用

如果我有类似的东西:

ArrayList<Data> mList = new ArrayList();

...

public void setList(ArrayList<Data> list) {
    mList = list;
}


public void updateList(ArrayList<Data> list) {
    mList.clear();
    mList.addAll(list);
}
Run Code Online (Sandbox Code Playgroud)

哪个更有效,setList()或者updateList()为什么?什么是最佳做法?

编辑:

不要混淆这个问题.

java performance android list arraylist

0
推荐指数
1
解决办法
470
查看次数