黑马程序员技术交流社区

标题: 无法访问ListIterator [打印本页]

作者: Cola    时间: 2013-11-26 13:16
标题: 无法访问ListIterator
本帖最后由 Cola 于 2013-11-26 20:39 编辑
  1. import java.util.*;

  2. class ListIteratorDemo2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList al=new ArrayList();

  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java03");
  10.                 al.add("java04");

  11.                 ListIterator li = al.listIterator();

  12.                
  13.                 //sop("hasPrevious():"+li.hasPrevious());

  14.                 while(li.hasNext())
  15.                 {
  16.                         Object obj = li.next();

  17.                         if(obj.equals("java02"))
  18.                                 //li.add("java009");
  19.                                 li.set("java006");
  20.                 }

  21.         }
  22.         public static void sop(Object obj)
  23.         {
  24.                 System.out.println(obj);
  25.         }
  26. }
复制代码


好奇怪呀,上边的代码,我觉得跟教程里的是一样的,我的怎么报错了呢?求指导。

1.JPG (48.58 KB, 下载次数: 41)

报错

报错

作者: freehiker    时间: 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作
  1. import java.util.ArrayList;
  2. import java.util.ListIterator;

  3. class ListIteratorDemo2
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 ArrayList al=new ArrayList();

  8.                 al.add("java01");
  9.                 al.add("java02");
  10.                 al.add("java03");
  11.                 al.add("java04");

  12.                 ListIterator li = al.listIterator();

  13.                
  14.                 //sop("hasPrevious():"+li.hasPrevious());

  15.                 while(li.hasNext())
  16.                 {
  17.                         Object obj = li.next();

  18.                         if(obj.equals("java02"))
  19.                                 //li.add("java009");
  20.                                 li.set("java006");
  21.                 }
  22.                 System.out.println(al);

  23.         }
  24.         public static void sop(Object obj)
  25.         {
  26.                 System.out.println(obj);
  27.         }
  28. }
复制代码

作者: Cola    时间: 2013-11-26 13:23
freehiker 发表于 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作

您写的这个能执行,谢谢。我运行我自己写的还是运行不了,好奇怪,哈哈……
作者: 一直很安静    时间: 2013-11-26 13:31
确实没有问题,你将结果打出来试试。我没打之前也是没报错的
作者: 王雷1    时间: 2013-11-26 13:37
我运行了你的代码,你是要把字符串java02换成java006,已经换成功了呀。没有报错呀?
import java.util.*;



class a

{

        public static void main(String[] args)

        {

                ArrayList<String> al=new ArrayList<String>();



                al.add("java01");

                al.add("java02");

                al.add("java03");

                al.add("java04");



                ListIterator<String> li = al.listIterator();

                               

               

                //sop("hasPrevious():"+li.hasPrevious());



                while(li.hasNext())

                {

                        Object obj = li.next();



                        if(obj=="java02")

                                //li.add("java009");

                                li.set("java006");//这里换成功了,但他返回的是void,所以在这个循环里你看不到

                }
                ListIterator<String> li1 = al.listIterator();
                while(li1.hasNext()){
                        sop(li1.next());
                }

        }

        public static void sop(Object obj)

        {

                System.out.println(obj);

        }

}
作者: 王雷1    时间: 2013-11-26 13:38
你的代码没有问题
作者: 零下五度的水    时间: 2013-11-26 13:39
是不是环境变量的问题,目测是导入util包失败了
作者: 邓伟    时间: 2013-11-26 15:26
代码没有任何问题..
你看看你的环境变量. 最有可能是的你的JDK的问题
里面的包的问题,因为包的错,是没有找到ListIterator类
作者: 王雷1    时间: 2013-11-26 15:36
很有可能你的util包又问题
作者: Cola    时间: 2013-11-26 20:23
freehiker 发表于 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作

我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;
运行正常。但是写
import java.util.*;
就会报错,请问是什么原因呢?
作者: Cola    时间: 2013-11-26 20:23
零下五度的水 发表于 2013-11-26 13:39
是不是环境变量的问题,目测是导入util包失败了

我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;
运行正常。但是写
import java.util.*;
就会报错,请问是什么原因呢?
作者: Cola    时间: 2013-11-26 20:38
freehiker 发表于 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
作者: Cola    时间: 2013-11-26 20:38
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
作者: Cola    时间: 2013-11-26 20:39
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
作者: freehiker    时间: 2013-11-26 20:40
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我就算用*的这个也能正确运行的哦
作者: Cola    时间: 2013-11-26 20:46
freehiker 发表于 2013-11-26 20:40
我就算用*的这个也能正确运行的哦

我写*的在E盘里运行可以通过,但是放E:\java_jichu\day14里就不行。同样的java文件。请问java运行对路径有要求吗?我觉得我的路径挺合理的,也没有什么特殊符号。
作者: freehiker    时间: 2013-11-26 20:57
Cola 发表于 2013-11-26 20:46
我写*的在E盘里运行可以通过,但是放E:\java_jichu\day14里就不行。同样的java文件。请问java运行对路径 ...

按道理应该没问题的,类加载器会通过默认的三个加载器去加载系统的包,import的都是jre包中的文件,按道理class放在哪都应该能import进来的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2