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

© s526349668 中级黑马   /  2014-7-14 22:40  /  948 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 s526349668 于 2014-7-14 23:16 编辑

这个代码请问哪里错了,重复的数据没有去掉哦
  1. import java.util.*;

  2. public class HashDemo {
  3.         private String name;
  4.         private int age;
  5.         HashDemo(String name, int age){
  6.                 this.name=name;
  7.                 this.age=age;
  8.         }
  9.         public int hashCode(){
  10.                 return name.hashCode()+age*37;
  11.         }
  12.         public String getName() {
  13.                 return name;
  14.         }
  15.         public int getAge() {
  16.                 return age;
  17.         }

  18.         
  19.         public  boolean equals(Object obj){
  20.                 if(!(obj instanceof Person))
  21.                         return false;
  22.                 HashDemo p=(HashDemo)obj;
  23.                 return this.name.equals(p.name)&& this.age==p.age;
  24.         }
  25. }
  26. public class HashDemoTest {
  27.         public static void main(String[] args){
  28.                 HashSet hs=new HashSet();
  29.                 hs.add(new HashDemo("wangwu",14));
  30.                 hs.add(new HashDemo("zhangsan",22));
  31.                 hs.add(new HashDemo("lisi",30));
  32.                 hs.add(new HashDemo("zhangsan",22));
  33.                 Iterator it=hs.iterator();
  34.                 while(it.hasNext()){
  35.                         HashDemo h=(HashDemo)it.next();
  36.                         sop(h.getName()+"...."+h.getAge());
  37.                         
  38.                 }
  39.                
  40.         }
  41.         public static void sop(Object obj){
  42.                 System.out.println(obj);
  43.         }

  44. }
复制代码


3 个回复

倒序浏览
if(!(obj instanceof Person)) 你的类名是HashDemo ,equals方法里却写成了Person。。。
回复 使用道具 举报 1 0
赵顺超 来自手机 中级黑马 2014-7-14 22:58:18
藤椅
编译过了?那不全返回false。。。那不就去不掉了?
回复 使用道具 举报
fantacyleo 发表于 2014-7-14 22:46
if(!(obj instanceof Person)) 你的类名是HashDemo ,equals方法里却写成了Person。。。

谢啦啊,失误失误啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马