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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 一碗小米周 于 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。。所以弄错了。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

3 个回复

倒序浏览
Set集合存储的元素是不能重复的,你存储的对象应该重写了hashCode和equals方法。。判定是相同元素之后就不会存了~
回复 使用道具 举报
Weix1992 发表于 2013-12-8 21:31
Set集合存储的元素是不能重复的,你存储的对象应该重写了hashCode和equals方法。。判定是相同元素之后就不 ...

恩。是我自己弄错了。谢谢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马