解决方案 »

  1.   

    给你东西让你存储,你肯定是拿这个东西某个属性(hashCode)和你已经存储的东西的属性(hashCode)比较才能知道这个东西是否以前存储过了呗。所以要重写Student的hashCode方法了。调用自己的有什么意义呢?
      

  2.   

    对象调用hashcode()确定不了元素的惟一性。
    元素的唯一应该要包括:地址唯一,内容唯一,对象所在的类唯一吧。
      

  3.   

    话虽如此,也的确是这个思想,但是在源码中hashcode()方法是空的,这个他到底是怎么样个运行法子
      

  4.   

    建议了解一下Hash算法、看一下HashSet和HashMap的源码,因为HashSet是用HashMap实现的,看一下数据在HashMap中到底是怎么存储的,就明白了。
      

  5.   

    恩,我对Hash算法是不怎么了解,不过我看过HashSet和HashMap的源码,不过看了疑惑更多额,比如说map是一个接口,里面的方法都是抽象的,不能用来声明对象,但是我们总是直接用去new一个map对象,而且它又没有被实现,怎么就直接去声明一个对象了,疑惑更多了额
      

  6.   

    楼主是怎么直接用去new一个map对象的
      

  7.   

    额,您是想说在new一个map对象时传递的参数类型就相当于一个实现的过程吗?那我如果不去传递类型呢,形如: HashSet hs=new HashSet();呢?小弟不是很明白额,回复晚了不好意思
      

  8.   

    HashSet不是实现好的类么?HashSet是抽象的么?