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

© 邵阳 中级黑马   /  2012-7-17 18:19  /  1511 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邵阳 于 2012-7-17 20:18 编辑

import java.util.*;
class Demo1
{
        public static void main(String[]args)
        {
                ArrayList array=new ArrayList();
                array.add("java1");
                array.add("java2");
                array.add("java3");
                array.add("java4");
                array.add("java1");
                array.add("java2");
                array.add("java2");
                sop(method(array));

        }
        public static ArrayList method(ArrayList al)
        {
                ArrayList newArr=new ArrayList();
                Iterator it=al.iterator();
                while (it.hasNext())
                {
                        Object obj=it.next();
                        if (!newArr.contains(obj))
                        {
                                newArr.add(obj);
                        }

                }
                return newArr;
        }
        public static void sop(Object o)
        {
                System.out.println(o);
        }
}
总是出现
D:\java\zuoye\jihe>javac d.java
d.java:222: 错误: 无法访问ArrayList
        public static ArrayList method(ArrayList al)
                                       ^
  错误的源文件: .\ArrayList.java
    文件不包含类ArrayList
    请删除该文件或确保该文件位于正确的源路径子目录中。



我的程序是正确的,貌似源代码让我改啦,我就看了看源代码啊!怎么把源代码改过来 啊。急求
回帖加10分。

5 个回复

倒序浏览
本帖最后由 薄炳鑫 于 2012-7-17 18:29 编辑

你的javac编译的时候应该和你有主函数的类名一样,这样修改一下应该就没有问题了。(把.java文件的名字改成Demo1.java)
我运行了一下,你的代码是正确的。

评分

参与人数 1黑马币 +3 收起 理由
邵阳 + 3

查看全部评分

回复 使用道具 举报
薄炳鑫 发表于 2012-7-17 18:28
你的javac编译的时候应该和你有主函数的类名一样,这样修改一下应该就没有问题了。(把.java文件的名字改成D ...

哥们我的源文件出错啦。不是我程序和运行的问题。我的是1.60版本的src.zip你给我发一个
qq 1456715224
回复 使用道具 举报
import java.util.*;

/*
去除ArrayList集合中的重复元素。

*/

class ArrayListTest
{

        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                ArrayList al = new ArrayList();

                al.add("java01");
                al.add("java02");
                al.add("java01");
                al.add("java02");
                al.add("java01");
//                al.add("java03");


                /*
                在迭代时循环中next调用一次,就要hasNext判断一次。
                Iterator it = al.iterator();

                while(it.hasNext())
                {
                        sop(it.next()+"...."+it.next());
                }
                */

                /**/
                sop(al);
               
                al = singleElement(al);

                sop(al);
               

        }

        public static ArrayList singleElement(ArrayList al)
        {
                //定义一个临时容器。
                ArrayList newAl = new ArrayList();

                Iterator it = al.iterator();

                while(it.hasNext())
                {
                        Object obj = it.next();

                        if(!newAl.contains(obj))
                                newAl.add(obj);

                }

                return newAl;
        }
}
回复 使用道具 举报
1、你的java文件叫d.java和类名不一致啊,你编译d.java,根据d这个名字,根本找不到d这个入口类,
2、建议你使用Eclipse写java,它里面有“从本地历史记录回复",里面会有你你以前的记录,可以方便的恢复回去,小程序不要紧,看一会儿就可以找出来,大程序,一恢复就ok了
回复 使用道具 举报
本帖最后由 鲍霄霄 于 2012-7-17 20:29 编辑

这文件名和文件里面定义的类的名字明显不一样,你的那个代码我运行了正常输出[java1, java2, java3, java4],你文件名叫d.java,而类名叫Demo1,这就出问题了呗。还有你下面提示的“无法访问ArrayList,错误的源文件: .\ArrayList.java”,这个感觉问题比严重,不是简单的类名和类里定义的名字不一致的问题,最好能把你的整个源文件发来看看。
import java.util.*;
class Demo1
{
        public static void main(String[]args)
        {
                ArrayList array=new ArrayList();
                array.add("java1");
                array.add("java2");
                array.add("java3");
                array.add("java4");
                array.add("java1");
                array.add("java2");
                array.add("java2");
                sop(method(array));

        }
        public static ArrayList method(ArrayList al)
        {
                ArrayList newArr=new ArrayList();
                Iterator it=al.iterator();
                while (it.hasNext())
                {
                        Object obj=it.next();
                        if (!newArr.contains(obj))
                        {
                                newArr.add(obj);
                        }

                }
                return newArr;
        }
        public static void sop(Object o)
        {
                System.out.println(o);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马