黑马程序员技术交流社区

标题: 关于HashSet中重复元素的问题。 [打印本页]

作者: Cfan_yang    时间: 2014-12-27 20:07
标题: 关于HashSet中重复元素的问题。
  1. package com.itheima;
  2. import java.io.*;
  3. import java.util.*;
  4. public class ReflectTest4 {
  5.         public static void main(String args[]) throws Exception
  6.         {
  7.                 Collection collections = new HashSet();
  8.                 ReflectPerson r1 = new ReflectPerson(3,3);
  9.                 ReflectPerson r2 = new ReflectPerson(4,4);
  10.                 ReflectPerson r3 = new ReflectPerson(5,5);
  11.                 ReflectPerson r4 = new ReflectPerson(3,3);
  12.                 collections.add(r1);
  13.                 collections.add(r2);
  14.                 collections.add(r3);
  15.                 collections.add(r4);
  16.                 System.out.println(r1.hashCode()==r4.hashCode());
  17.                 System.out.println(r1.equals(r4));
  18.                 System.out.println(collections.size());
  19.         }
  20. }
复制代码
代码如图。运行结果为:
true
true
4
为什么r1与r4的hashcode与equals都相等还存入了HashSet中。


作者: 常强儿    时间: 2014-12-28 00:38
这个你要把ReflectPerson的equals和与之相关的内容都粘过来
这前遇到过一次在进行equals比较时更改了对象,你看看你是不是这种情况,
再有就是把两个print语句copy一份到add方法之前。




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