HashTable折叠方法

时间:2016-03-15 15:54:08

标签: java hash

我正在尝试为HashTable编写一个移位折叠方法。

该方法传递一个key(int)值,键值被分成数字组,并添加组。组中的位数应与arraySize相对应。

EX)输入arraySize = 15; key = 123;

输出:12 + 3 = 15

然而,我写的方法是落后的。

public class C{
public int folding(int key)
{
  int digit =1; // how many digits in arraySize?
  int arraySize =15; //if 15, 2-digits
  int hashVal =0; 

  while(arraySize >0 ){ //digit is 100;
      digit *= 10;
      arraySize /= 10;
  }

  while(key>0){  //hashVal should be 15
      hashVal +=key%digit;
      key /= digit;
  }
  System.out.print(hashVal);
  return hashVal;


}


public static void main(String[] args) {
C g = new C();
g.folding(123);
}
}

我得到了

1 + 23 = 24

对原始代码进行一些修改是否可以修复它以获得预期的输出?

或者唯一的方法是将arraySize(int)转换为String并解析keyValue的长度吗?

0 个答案:

没有答案