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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 傲鸽 中级黑马   /  2013-6-28 10:07  /  1068 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.ArrayList;
  2. import java.util.Iterator;

  3. public class Demo33{
  4.        
  5.         public static void main(String[] args){
  6.                
  7.                 ArrayList al=new ArrayList();
  8.                 al.add(new Person("张三",16));
  9.                 al.add(new Person("李四",17));
  10.                 al.add(new Person("张三",16));
  11.                 al.add(new Person("王五",26));
  12.                 al.add(new Person("张三",16));
  13.                 al.add(new Person("王五",26));
  14.                
  15.                 al=removeSameEmplement(al);
  16.                 System.out.println(al);
  17.         }
  18.        
  19.         public static ArrayList removeSameEmplement(ArrayList al){
  20.                 ArrayList temp=new ArrayList();
  21.        
  22.                 Iterator it = al.iterator();
  23.        
  24.                 while(it.hasNext())
  25.                         Object obj=it.next();
  26.                         if(!temp.contains(obj)){
  27.                                 temp.add(obj);
  28.                 }
  29.                 return temp;
  30.         }
  31. }
复制代码
编译出错,总提示
  1. Exception in thread "main" java.lang.Error: Unresolved compilation problem:

  2.         at cn.itcast0627.Demo33.main(Demo33.java:8)
复制代码
请大侠帮我找出错误

评分

参与人数 1技术分 +1 收起 理由
Just_Only + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
楼主 出错代码最好原封不动的贴出来,你这里只贴出了一部分,前面打包的部分
package cn.itcast0627; 也需要粘贴出来,这样在你贴出来的出错信息里边的出错行号才能对应到阵阵出错的那段代码。

好吧 你这代码出错还真是在包上面,你是不是在别的地方复制的一段代码到Eclipse里边,然后Eclipse里边还有一个cn.itcast0627的包,所以要加上
package cn.itcast0627; 就不会有楼主所说的错误了。

另外在楼主代码中
  1. public static ArrayList removeSameEmplement(ArrayList al){
  2.                 ArrayList temp=new ArrayList();
  3.         
  4.                 Iterator it = al.iterator();
  5.                
  6.                 while(it.hasNext())
  7.                        Object obj=it.next();//在while语句中,每次循环就会定义一个新的Object,这样会产生变量名冲突的,所以要将定义语句放到循环                    外边
  8.                         if(!temp.contains(obj)){
  9.                                 temp.add(obj);
  10.                 }
  11.                 return temp;
  12.         }
复制代码
这个方法也错了,应该改成这样
  1. public static ArrayList removeSameEmplement(ArrayList al){
  2.                 ArrayList temp=new ArrayList();
  3.         
  4.                 Iterator it = al.iterator();
  5.                
  6.                 Object obj = null;
  7.                 while(it.hasNext())
  8.                        obj=it.next();
  9.                         if(!temp.contains(obj)){
  10.                                 temp.add(obj);
  11.                 }
  12.                 return temp;
  13.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马