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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李征雪 于 2012-4-18 15:37 编辑
  1. import java.util.*;

  2. class DemoPrevious
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList al = new ArrayList();
  7.                 al.add("rwyh");
  8.                 al.add("dbjh");
  9.                 al.add("dsej");
  10.                 al.add("vkdq");

  11.                 ListIterator it = al.listIterator();
  12.                 while (it.hasPrevious())
  13.                 {
  14.                         System.out.println(it.previous());
  15.                 }
  16.                 System.out.println("Hello World!");
  17.         }
  18. }
复制代码
帮我看看是哪的问题,如果用hasNext()和it.next()就可以正常输出。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
没想到应该怎么去解决这个问题,因为这个是从集合的尾部开始进行读写,而一开始读的话,下标是从0开始,所以it.hasPrevious()前就没有元素了,没想到怎么一开始就把角标指到集合的未尾,只有用hasnext遍历到集合尾部再用这个去遍历
回复 使用道具 举报
这样就可以了~
import java.util.*;

class Demo
{
        public static void main(String[] args)
        {
                ArrayList al = new ArrayList();
                al.add("rwyh");
                al.add("dbjh");
                al.add("dsej");
                al.add("vkdq");
                                System.out.println(al);
                ListIterator it = al.listIterator(al.size());
                while (it.hasPrevious())
                {
                        System.out.println(it.previous());
                }
               
        }
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
ListIterator<E> listIterator(int index) ,从指定位置开始迭代,就不会出现空指针异常了。遇到问题多看看API好处还是挺多{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马