Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在J2ME中生成哈希值?_Java_Java Me_Hash_Midp - Fatal编程技术网

Java 如何在J2ME中生成哈希值?

Java 如何在J2ME中生成哈希值?,java,java-me,hash,midp,Java,Java Me,Hash,Midp,在J2ME中,如何为字节数组生成哈希值 它不一定要非常安全,但应该很快。如果您已经依赖它,您也可以使用: 正如Josh Bloch在其《有效的Java》一书中所建议的: public int hashCode() { int result = 17; for (int i = 0; i < array.length; i++) { result = 31*result + (int)array[i]; } return result; } public

在J2ME中,如何为字节数组生成哈希值


它不一定要非常安全,但应该很快。

如果您已经依赖它,您也可以使用:


正如Josh Bloch在其《有效的Java》一书中所建议的:

public int hashCode() {
   int result = 17;
   for (int i = 0; i < array.length; i++) {
      result = 31*result + (int)array[i];
   }
   return result;
}
public int hashCode(){
int结果=17;
for(int i=0;i
您是否还记得为什么使用31的原因?这是一个素数,但还有其他一些我不记得的原因。我认为布洛赫写道,出于数学理论支持的某些原因,使用素数。它允许散列表中键的统一分布,防止创建键具有相同散列代码的值的链表。我只是不明白为什么结果会用17值实例化。在谷歌图书扫描版中,31整数似乎是37,Apache Commons是用于Java SE的,不适用于Java ME/MIDP
public int hashCode() {
   int result = 17;
   for (int i = 0; i < array.length; i++) {
      result = 31*result + (int)array[i];
   }
   return result;
}