A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
public static void main(String[]  args)
  Arraylist  al=new Arraylist();
        al.add("01");
        al.add("02");
        al.add("03");
Interator   it=al.interator();
   while( it.HasNext())
{
     System.out.println(it.next())和System.out.println(it.next()+"...."+it.next())---后面这句代码不可用的原因
}
主要是突出这个问题,代码可能写的不全,请谅解!

---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 luoanjade 于 2014-3-23 15:30 编辑

while( it.HasNext())
{
     System.out.println(it.next())和System.out.println(it.next()+"...."+it.next())
}
这个,你看一下api,hasNext()方法和next()方法的作用就知道了。
hasNext()是判断是否有数据存在。next()是取一条数据,如果数据不存在则会异常。
你后面的写法是,连续取了两条数据,而你上面插入的数据就只有3条,取第四次的时候,就取不到数据了,当然就会异常了。
如果你确定列表里面的数据是偶数条的话,个人认为可以这么写:
System.out.println(it.next()+"...."+it.next()),减少hasNext()判断次数。
还有,如果你确定列表里面有3的倍数条数据,还可以这样写:
System.out.println(it.next()+"...."+it.next()+"...."+it.next())
依次类推,四的倍数条:
System.out.println(it.next()+"...."+it.next()+"...."+it.next()+"...."+it.next())
......
你看看这上面的的几种方式,现实中哪个实用呀?一个都不实用,对不?因为我们根本就不知道数据有多少。
所以,为何要给自己找麻烦呢,直接System.out.println(it.next()),本分一点一条条的取,你有多少数据我都不怕。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
luoanjade 发表于 2014-3-23 15:22
while( it.HasNext())
{
     System.out.println(it.next())和System.out.println(it.next()+"...."+it.ne ...

恩恩,我零基础,可能理解的不好,多帮忙啊!:)
回复 使用道具 举报
北极雪871208 发表于 2014-3-23 21:13
恩恩,我零基础,可能理解的不好,多帮忙啊!

我也是刚学的,互相学习!
回复 使用道具 举报
next()方法里面默认会有一个指针,在Java当中指针讲的特别模糊,但还是会用到,底层C++里面的指针一样,这里的next()方法里面有一个指针,输出一个元素后,指针会自动向后面移动的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马