黑马程序员技术交流社区
标题:
为什么把迭代器放在for循环外就可以在for循环内倒着遍历元素
[打印本页]
作者:
追逐
时间:
2014-3-21 11:31
标题:
为什么把迭代器放在for循环外就可以在for循环内倒着遍历元素
class ListDemo
{
public static void main(String[] args)
{
list_1();
}
//ListIterator的简单应用
public static void list_1()
{
ArrayList s = new ArrayList();
s.add("java01");
s.add("java02");
s.add("java03");
ListIterator li = s.listIterator(); //为什么要把它放在循环外才可以在循环内从头往后遍历元素????
//使用List特有的迭代器ListIterator
for(; li.hasNext(); )
{
Object obj = li.next(); //子类对象指向父类引用
if(obj.equals("java03"))
{
li.set("java---3"); //对迭代器中的元素进行修改
li.add("java-----3"); //对迭代器中的元素进行添加
}
}
p("从头往后遍历:" + s);
for(; li.hasPrevious(); )
{
p(li.previous());
}
p("从后往头遍历: " + s);
}
public static void p(Object obj)
{
System.out.println(obj);
}
}
作者:
Ranger
时间:
2014-3-21 12:49
因为迭代器的规则,如果放入循环,代表你每一个循环都新建一个迭代器,永远都是从一个集合的元素开始迭代。
作者:
青木郎
时间:
2014-3-21 14:08
放在循环里面也行的,这样:
for(ListIterator li = s.listIterator(); ; li.hasNext(); )
{………}
因为for循环中的的第一个位置,只是用来定义并初始化一个变量,以供后面用到,所以定义在外面和里面,没有区别的
作者:
追逐
时间:
2014-3-21 15:58
谢谢大家伙的帮忙。问题解决了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2