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

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

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

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

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

图片说明一个用到了list

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

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