黑马程序员技术交流社区
标题:
关于集合对象取出操作
[打印本页]
作者:
陈家明
时间:
2012-11-7 19:21
标题:
关于集合对象取出操作
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
//迭代器
Iterator<String> it = list.iterator();
while(it.hasNext()){
String value = it.next();
System.out.println(value);
}
//增强for
for(String s : list){
System.out.println(s);
}
}
}
迭代器和增强for循环都能实现取出对象操作,它们可以等价吗?各有什么优劣性?区别在哪?
作者:
焦晨光
时间:
2012-11-7 19:25
迭代器的优点:在迭代的同时可以简单的操作数据,比如删除对象等
缺点:效率偏低
增强for循环优点:效率很高,查询速度快,操作简单
缺点:无法对集合进行简单操作
推荐使用增强for循环,一句话:谁用谁知道!~
作者:
徐丹
时间:
2012-11-7 19:39
迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素。
迭 代器需要保留上一次成功调用的状态和下一次成功调用的状态,也就是他知道来自于哪里和将要前往哪里。闭包提供的机制可以很容易实现这个任务。记住:闭包是 一个内部函数,它可以访问一个或者多个外部函数的外部局部变量。每次闭包的成功调用后这些外部局部变量都保存他们的值(状态)。当然如果要创建一个闭包必 须要创建其外部局部变量。迭代器有一个缺点:每次调用都需要创建一个闭包,大多数情况下这种做法都没什么问题,然而在有些情况下创建闭包的代价是不能忍受的。在这些情况下我们可以使用范性for本身来保存迭代的状态。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2