2 dangeroushai dangeroushai 于 2016.01.26 20:03 提问

求大神解答,先获取List再遍历与直接遍历的差别?

如:
for(Apple apple:plate.getApples()){
}

List list = plate.getApples();
for(Apple apple:list){
}
在执行效率上有区别吗?为什么?

5个回答

caozhy
caozhy   Ds   Rxr 2016.01.26 20:36
已采纳

你这么写完全是等价的,没有任何区别。因为list其实还是一个引用,而不是拷贝一份列表。

QZC78
QZC78   2016.01.27 14:37

List list = plate.getApples();使用这个相当于在内存里分配list空间,然后将plate.getApples()指向list,相对第一种写法可能稍占内存,还有的就是可能加多行代码

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.30 16:14

没有差别啊,只不过后者用了个临时变量来接收这个列表而已。

enpterexpress
enpterexpress   2016.01.26 23:28

图片说明一个用到了list

91program
91program   Ds   Rxr 2016.01.26 21:19

实际都是对 plate.getApples() 进行操作,就类似于C语言用指针指向数组后,分别用数组名与指针访问整个数组一样。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!