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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Cola 中级黑马   /  2013-11-26 13:16  /  1914 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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)

报错

报错

16 个回复

倒序浏览
我运行了一下,没有问题,顺便打印了一下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. }
复制代码
回复 使用道具 举报
freehiker 发表于 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作

您写的这个能执行,谢谢。我运行我自己写的还是运行不了,好奇怪,哈哈……
回复 使用道具 举报
确实没有问题,你将结果打出来试试。我没打之前也是没报错的
回复 使用道具 举报
我运行了你的代码,你是要把字符串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);

        }

}
回复 使用道具 举报
你的代码没有问题
回复 使用道具 举报
是不是环境变量的问题,目测是导入util包失败了
回复 使用道具 举报
邓伟 中级黑马 2013-11-26 15:26:22
8#
代码没有任何问题..
你看看你的环境变量. 最有可能是的你的JDK的问题
里面的包的问题,因为包的错,是没有找到ListIterator类
回复 使用道具 举报
王雷1 中级黑马 2013-11-26 15:36:58
9#
很有可能你的util包又问题
回复 使用道具 举报
Cola 中级黑马 2013-11-26 20:23:01
10#
freehiker 发表于 2013-11-26 13:20
我运行了一下,没有问题,顺便打印了一下al,能成功执行修改操作

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

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

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
回复 使用道具 举报
Cola 中级黑马 2013-11-26 20:38:55
13#
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
回复 使用道具 举报
Cola 中级黑马 2013-11-26 20:39:02
14#
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我发现是路径的问题,java文件放根目录下运行就可以,谢谢啦。
回复 使用道具 举报
Cola 发表于 2013-11-26 20:23
我发现导包的时候写
import java.util.ArrayList;
import java.util.ListIterator;

我就算用*的这个也能正确运行的哦
回复 使用道具 举报
Cola 中级黑马 2013-11-26 20:46:07
16#
freehiker 发表于 2013-11-26 20:40
我就算用*的这个也能正确运行的哦

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

按道理应该没问题的,类加载器会通过默认的三个加载器去加载系统的包,import的都是jre包中的文件,按道理class放在哪都应该能import进来的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马