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   Rxr 2016.01.26 23:28

图片说明一个用到了list

91program
91program   Ds   Rxr 2016.01.26 21:19

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
循环list的非空判断
对List增强for循环,为空判断,  新建一个list,例如List list=new ArrayLsit(),不用做非空判断。而如果是从变量取的要加非空判断,例如List list=t.get××List();因为后者取出来有可能为null。
arrayList遍历的同时删除
ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题. http://javag.iteye.com/blog/403097   ArrayList遍历的同时删除-- 删除还是用迭代器的比较好,其它的都会有问题.       博客分类:   随笔 Javathread  方
ajax遍历List<对象>的三种方式
//根据当前用户id获取其公司的所有员工 function allUser(){ $.ajax({ url:"/djt/insurance/getUserList/ajax", data:{userId:$("#set_message_id").val()}, dataType:"json",
java中List集合遍历和迭代器遍历
java中List集合遍历和迭代器遍历
listIterator反向遍历学习笔记
ListIterator接口有两个方法,可以用来反向遍历链表E previous() bollean hasPrevious()import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class Test { publi
【C#】遍历List列表的同时,移除访问到的元素
不能用foreach循环!用for循环
数组遍历 和 迭代器遍历的区别
循环数组时候如果要对数组进行add、remove操作,采用 迭代器的遍历,list的遍历通常有三种方式:1,普通的数组遍历 for (int i = 0; i < args.length; i++) { }2,加强型数组遍历for (String string : args) { }3,迭代器遍历while (it.hasNext()) { type type =
Ajax请求获取的List在前台遍历的方法
通过ajax请求获取的list无法直接用c:foreach标签直接遍历,需要单独做处理。 处理方法是重新载入js页面,将我们需要的div模块放到function里面拼接,将其放入最外层id=”earrwr”的模块下面即可。for ( var i = 0; i < staffList.length; i++) { var name = staffList[i].sname;
使用list集合遍历对象
public static void main(String[] args) {         // 具体实现步骤         // 1、创建多个各类新闻标题对象         NewTitle car = new NewTitle(1, "汽车", "管理员");         NewTitle test = new NewTitle(2, "高考", "管理员");   
Python用for循环来遍历list时,for循环体内有改动list长度的操作的情况
Python用for循环来遍历list时,for循环体内有改动list长度的操作的情况。 注意,`lists`这个`list`变量在for循环进行的过程中,会被删除一部分元素(偶数),也就是说,在for循环结束之前len(lists)的值是会变化的。那结果会是什么呢?