HashCode,试图得到一个单词或数字的最后几个字母

时间:2010-02-19 15:14:53

标签: hashcode

我有这个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来做到这一点。任何帮助都将非常感激

2 个答案:

答案 0 :(得分:0)

编辑器修改代码可能会出现问题,但我在循环内的任何地方都看不到valuetest

答案 1 :(得分:0)

public int hashCode(String value)

并呼叫为

assertEquals(“and”,key2.hashCode());

你甚至没有覆盖它正确地改变签名,不采取任何参数请:)