以下哪个是适当的hashCode定义方法?()
A: return super.hashCode();
B: return name.hashCode() + age * 7;
C: return name.hashCode() + comment.hashCode() /2;
D: return name.hashCode() + comment.hashCode() / 2 - age * 3;
A: return super.hashCode();
B: return name.hashCode() + age * 7;
C: return name.hashCode() + comment.hashCode() /2;
D: return name.hashCode() + comment.hashCode() / 2 - age * 3;
举一反三
- Which statement is true?() A: Compilation fails because the hashCode method is not overridden. B: A HashSet could contain multiple Person objects with the same name. C: All Person objects will have the same hash code because the hashCode method is not overridden. D: If a HashSet contains more than one Person object with name="Fred", then removing another Person, also with name="Fred", will remove them all.
- 下列哪个方法用于垃圾回收() A: toString() B: hashCode() C: finalize() D: clone()
- 34 下面论述正确的是()? A: 如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,必然返回同样的值 B: 如果a,b的hashcode相同,那么a.equals(b)必须返回true C: 对于一个类,其所有对象的hashcode必须不同 D: 如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同
- 请按照下列要求编写程序。 1、 编写一个Student类,包含name和age属性,提供有参构造方法。 2、 在Student类中,重写toString()方法,输出age和name的值。 3、 在Student类中,重写hashCode()和equals()方法 a. hashCode()的返回值是name的hash值与age的和。 b. equals()判断对象的name和age是否相同,相同则返回true不同返回false。 4、最后编写一个测试类,创建一个HashSet<Student>对象hs,向hs中添加多个Student对象,假设有两个Student对象相等,输出HashSet,观察是否添加成功
- 一般在覆盖时,要同时覆盖hashCode、equals方法。