You*_*ode 0 java performance android list arraylist
如果我有类似的东西:
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()为什么?什么是最佳做法?
编辑:
不要混淆这个问题.
Gho*_*ica 11
两者之间存在巨大的概念差异.
你setList()参考了一个清单; 并更改你的mList ...指向该参考.
而您updateList()将传入列表中的所有引用复制到现有的mList对象中.
含义:与updateList()相比,setList()确实需要更少的CPU操作......但关键是:现在可以从类外部更改mList.像:
List someList = ...
yourClass.setList(someList);
someList.clear();
Run Code Online (Sandbox Code Playgroud)
将清除"你的"mList; 但
List someList = ...
yourClass.updateList(someList);
someList.clear();
Run Code Online (Sandbox Code Playgroud)
会不会影响到你的"mList".
这是你应该注意的主要区别.
性能实际上并不是这里需要关注的真正问题!
一般来说:不要过分担心性能.因为:无论如何你都不会把它弄好.例如,JIT编译器颠倒了天真的假设.
长话短说:关注操作的语义 ; 不要将自己局限于"表现"方面.
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |