有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓 java替换列表内容或替换引用值本身

我有一个用于Android中ListView适配器的列表

大多数情况下,列表用于读取,但有时需要替换所有列表内容

下面哪种类型的代码(replaceListA、replaceListB)是首选代码?还是用另一种方法来取代名单

提前谢谢你

private ArrayList<Model> list = new ArrayList<Model>();

public synchronized void replaceListA(List newList) {
            list.clear();
            list.addAll(newList);
}

public synchronized void replaceListB(List newList) {
    list = newList;
}

共 (2) 个答案

  1. # 1 楼答案

    第二种是首选。它在O(1)时间内运行,另一个在O(n)时间内运行。之后一定要给notifyDataSetChanged打电话

  2. # 2 楼答案

    this answer

    It's hard to know without a benchmark, but if you have lots of items in your ArrayList and the average size is lower, it might be faster to make a new ArrayList.