使用HashSet<T>有什么 要求吗,比如说必须重写T元素中的 一些方法,如果需要重写哪些方法呢?

解决方案 »

  1.   

    重写T是什么意思
    T表示一个类型,比如String,Long之类的这是java的泛型,泛型可以使得类型也作为参数,变化起来
    lz可以google一下,有N多解答
      

  2.   

    重写hashcode() 和equals()方法:
    保证:如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。 
      

  3.   

    HashSet<T>
    T为所维护的元素的类型
    若使用java内部的包装类及String等,例如Integer,Long,Short,不必关心T是否重写一些方法,直接使用即可若类型是自定义的,一般情况下也不需考虑实现,除非你有特殊要求
    例如
    Student有三个属性 name describe grade
    如果你要求若是grade和name这两个属性相同,则这两个学生对象指向的是同一人,
    则需要实现Student 的hashCode()和equals()方法Set中数据不允许重复,插入时会拿现有的与已有的进行比较
    通过hashCode()和equals()方法就能快速且准确的判断在集合中是否存在与添加对象相同的对象具体可以查看下
    http://blog.csdn.net/ws169144/archive/2009/03/13/3983520.aspx
      

  4.   

    好吧, 看来HashSet这个设计的,还不够智能,我还是换HashMap吧,谢谢楼上各位。