在录入一个班级学生信息的时候,为什么要覆盖 hashCode( )方法呢?
把对象存进HashSet时,会先比较hashCode方法的返回值,若相同才调用equals方法再进一步判断,所以一般都要覆盖hashCode方法是为了尽可能避免哈希值一样,这样就不用再作进一步的判断而浪费资源。
只覆盖equals( ) 方法来避免录入相同的学生不就行了么?
只覆盖equals方法,让对象作第二步的判断是浪费资源。
直接指定TreeSet当然可以了,但是有没有可能使用HashSet?,就像外面一些饭馆里摆放牙签,顾客有可能用有可能不用,所以最好摆着。 |
|