黑马程序员技术交流社区
标题:
迭代器的问题
[打印本页]
作者:
宗士为
时间:
2012-5-8 10:04
标题:
迭代器的问题
class IrTest
{
ArrayList a2 = new ArrayList();
a2.add("张三");
a2.add("李四");
a2.add("王二");
Iterator T = a2.iterator();
public void BianLi()
while(iteratorSub.hasNext()){
System.out.println("第一次遍历");
}
while(iteratorSub.hasNext()){
System.out.println("第二次遍历。");
}
}
class TestBl
{
public static void main(String[] args)
IrTest a=new IrTest();
a.BianLi();
}
// 返回结果 true 和 false 为什么第二次是flase呢
作者:
宗士为
时间:
2012-5-8 10:10
代码 有问题 下面是改过的
class IrTest
{
public static void main(String[] args)
{
ArrayList a2 = new ArrayList();
a2.add("张山");
a2.add("李四");
a2.add("王五");
Iterator T = a2.iterator();
while(T.hasNext())
{
Object s1 = T.next();
System.out.println("第一次遍历:");
}
while(T.hasNext())
{
Object s1 = T.next();
System.out.println("第二次遍历。");
}
}
}
作者:
蒋映辉
时间:
2012-5-8 10:10
你的代码编译能通过?满世界的错。。。。
作者:
胡元
时间:
2012-5-8 10:19
我说怎么看不懂他的代码呢!我在网吧,没法编译
作者:
郭振
时间:
2012-5-8 10:33
本帖最后由 郭振 于 2012-5-8 10:44 编辑
你的问题是为什么第二次while()没有运行吗?因为你用的是同一个贴袋器, hasNext()如果仍有元素可以迭代,则返回 true,当你运行第一个while()迭代器迭代完返回false,说明后边没有元素了。当运行第二while指迭代器的针还在后边,没有元素就返回false,所以没有运行。
while(T.hasNext())
{
Object s1 = T.next();
System.out.println("第二次遍历。");
}
作者:
杨威
时间:
2012-5-8 10:54
楼主贴上去的代码错误还是比较多的,粘贴过来一编译错误提示还是很多的:
首先两个函数大括号丢失;
其次撇开你程序的正确性不说,如果能运行,也不会有你要的结果,也只会打印出三次“第一次遍历”;
最后还有泛型的加入等等,建议楼主静下心看视频,慢慢来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2