我有这个hashCode函数,我一直试图用Eclipse实现,但我的测试仍然失败。我正在尝试编写一个Hashcode函数,它返回一个单词或数字的最后2或3个字符。这是我目前的代码:
public int hashCode(String value){
String test = value;
int hash = 1;
int len = test.length();
System.out.println(len);
for ( int i=0; i<len; i++ )
{
hash = 31 * hash + len;
}
return hash;
}
这是我的Junit测试:
@Test // hashCode()
public void testHashCode1() {
//Integer key1 = 123;
String key2 = "and";
assertEquals("and", key2.hashCode());
}
每次我运行测试时都会失败,表明:
预期但是:&lt; 96727&gt;
现在我真的希望这个函数接受一个Word或Number并返回所接收对象的最后两个或三个字符。有没有人知道如何使用hashCode来做到这一点。任何帮助都将非常感激
答案 0 :(得分:0)
编辑器修改代码可能会出现问题,但我在循环内的任何地方都看不到value
或test
。
答案 1 :(得分:0)
public int hashCode(String value)
并呼叫为
assertEquals(“and”,key2.hashCode());
你甚至没有覆盖它正确地改变签名,不采取任何参数请:)