黑马程序员技术交流社区

标题: 请各位帮忙看下,关于HashSet的一点小问题 [打印本页]

作者: 一碗小米周    时间: 2013-12-8 21:22
标题: 请各位帮忙看下,关于HashSet的一点小问题
本帖最后由 一碗小米周 于 2013-12-8 21:30 编辑
  1. import java.util.ArrayList;
  2. import java.util.Collection;
  3. import java.util.HashSet;

  4. import cn.itcast.day1.ReflectPoint;


  5. public class Test2 {
  6.         public static void main(String[] args) {
  7.                 Collection collection = new HashSet();
  8.                 ReflectPoint p1 = new ReflectPoint(3, 3);
  9.                 ReflectPoint p2 = new ReflectPoint(3, 3);
  10.                 ReflectPoint p3 = new ReflectPoint(3, 3);
  11.                 collection.add(p1);
  12.                 collection.add(p2);
  13.                 collection.add(p3);
  14.                 System.out.println(collection.size());
  15.                
  16.         }
  17. }
复制代码
在上面的代码中,为什么输出集合的大小为1呢?p1和p2,p3的hashcode值应该是不同的呀?求解答。谢谢各位。这里我重写了hashcode。。所以弄错了。

作者: Weix1992    时间: 2013-12-8 21:31
Set集合存储的元素是不能重复的,你存储的对象应该重写了hashCode和equals方法。。判定是相同元素之后就不会存了~
作者: 一碗小米周    时间: 2013-12-8 21:32
Weix1992 发表于 2013-12-8 21:31
Set集合存储的元素是不能重复的,你存储的对象应该重写了hashCode和equals方法。。判定是相同元素之后就不 ...

恩。是我自己弄错了。谢谢。




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