`
VerRan
  • 浏览: 451526 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

HashCode计算方法

    博客分类:
  • JAVA
阅读更多

Returns a hash code for this string. The hash code for a String object is computed as

 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 
using int arithmetic, where s[i] is the ith character of the string, n is the length of the string, and ^ indicates exponentiation. (The hash value of the empty string is zero.)
Overrides: hashCode() in Object
Returns:
a hash code value for this object.


package com.datastruct.sort;

import junit.framework.TestCase;

public class AscIITest extends TestCase {
	int hash=0;
	int offset=0;
	char[] value={'s','s'};
	
	public void test(){
		System.out.println(this.hashCode());
	}
	
	 public int hashCode() {
			int h = hash;
			if (h == 0) {
			    int off = offset;
			    char val[] = value;
			    int len = value.length;

		            for (int i = 0; i < len; i++) {
		                h = 31*h + val[off++];
		                System.out.println("第"+(i+1)+"次"+h);
		            }
		            hash = h;
		        }
		        return h;
		    }
}
 
分享到:
评论

相关推荐

    HashMap在put数据时是如何找到要存放的位置的?.docx

    分析HashMap在put数据时是如何找到要存放的位置的,对决定位置的hashCode计算方法进行详细解释,分析为啥要用高低16位异或运算,以及数组长度是如何影响元素存放位置的

    探索equals()和hashCode()方法_动力节点Java学院整理

    equals():反映的是对象或变量具体...根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的;当然,当对象所对应的类重写了hashCode()方法时,结果就截然不同了。

    javascript中实现兼容JAVA的hashCode算法代码分享

    在java中一个hashCode算法,可以用来计算一个字符串的hash值,今天一个朋友突然问俺能不能在js中计算hashCode,要求和java的hashCode计算结果一样。 对于java的hashCode,以前到现在也一直没有了解过其算法,不过...

    Java提高篇之hashCode

    在前面三篇博文中LZ讲解了(HashMap、HashSet、HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是重要也是精华的部分,所以下面LZ揭开hashCode的“神秘”面纱。...

    超实用的面试题整理

    当准备添加一个key-value对时,首先通过hash(key)方法计算hash值,然后通过indexFor(hash,length)求该key-value对的存储位置,计算方法是先用hash&0x7FFFFFFF;后,再对length取模,这就保证每一个key-value对都能...

    jdk1.8中文文学习手册

    在jdk1.8中对hashMap等map集合的数据结构优化。hashMap数据结构的优化 ...方法,计算出哈希码值,经过哈希算法算成数组的索引值,如果对应的索引处没有元素,直接存放,如果有对象在,那么比较它们的equals方法比较内容

    jdk1.8.zip

    jdk1.8新特性知识点: ...方法,计算出哈希码值,经过哈希算法算成数组的索引值,如果对应的索引处没有元素,直接存放,如果有对象在,那么比较它们的equals方法比较内容 如果内容一样,后一个value会将前一个value

    google-hashcode-2021:Google哈希码2021的问题陈述和我们团队的解决方案

    Google Hashcode 2021 2021年的哈希码以Google地图为主题,问题是交通灯调度问题,该问题涉及最大化通过城市交通网络的汽车数量。 结果 在9000多个参与者中,我们的团队在整个澳大利亚排名第三,在全球排名中排名前...

    set容器无重复注意问题.png

    凡是以hashcode为存储位置计算的容器都需要重写hashcoe方法,为什么重写类的hashcode和equals方法?如果不重写会有后果?以及set容器的元素储存方式

    Java反序列化入门之URLDNS链1

    1、 java.util.HashMap 重写了 readObject 方法: 2、 java.net.URL 对象的 hashCode 在计算时会调用 get

    Task_3-4-8_ComplexNumber

    返回常数或未考虑re和im的小数部分的hashCode()的实现将不计算在内 例子 ComplexNumber a =新的ComplexNumber(1,1); ComplexNumber b =新的ComplexNumber(1,1); // a.equals(b)必须返回true // a....

    Hadoop中MapReduce基本案例及代码(三)

    分区Partitioner ...计算方法是:which reducer=(key.hashCode() & Integer.MAX_VALUE) % numReduceTasks 注:默认情况下,reduceTask数量为1 很多时候MR自带的分区规则并不能满足我们需求,为了实

    jdk-8u202-linux-x64.tar

    hashMap数据结构的优化,原来的hashMap采用的数据结构是哈希表(数组+链表),hashMap默认大小是16,一个0-15索引的数组,如何往里面存储元素,首先调用元素的hashcode方法,计算出哈希码值,经过哈希算法算成数组的...

    java中Map集合的排序方法

    HashMap的应用实例 ...2,当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置就是此对象准备往数组中存放的位置。 HashMap应用举例:控制台输入一句英语,简单统计各个单词出现的次数

    jdk-8u112-windows-x64.zip

    方法,计算出哈希码值,经过哈希算法算成数组的索引值,如果对应的索引处没有元素,直接存放,如果有对象在,那么比较它们的equals方法比较内容 如果内容一样,后一个value会将前一个value的值覆盖,如果不一样,在...

    jdk1.8.0_60_linux.zip

    方法,计算出哈希码值,经过哈希算法算成数组的索引值,如果对应的索引处没有元素,直接存放,如果有对象在,那么比较它们的equals方法比较内容 如果内容一样,后一个value会将前一个value的值覆盖,如果不一样,在...

    sesvc.exe 阿萨德

    首先也是根据 key 计算出 hashcode,然后定位到具体的桶中。 判断该位置是否为链表。 不是链表就根据 key、key 的 hashcode 是否相等来返回值。 为链表则需要遍历直到 key 及 hashcode 相等时候就返回值。 啥都没取...

    jdk1.7和jdk1.8中hashmap区别

    将键值对传递给put方法时,它调用键对象的hashCode()方法来计算hashCode,然后找到相应的bucket位置(即数组)来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。更多细节 ...

    java之Object类方法技术分享PPT

    主要包含Object类中的getClass()、hashCode()、equals()、toString()方法的使用和作用,还包含一个3D旋转模型,还包含几个常见的面试题的解析,可用作学生每周技术分享或者上台演讲,适用于大学计算机专业相关人士。

    Object类和toString()方法.pptx

    Object类和toString()方法;熟记Java中的父类Object类 认识toString()方法并理解其作用 能在一些类里正确重写toString()方法 理解toString()方法的执行机制;public class MyClass { } ;4;System.out.print(对象); //...

Global site tag (gtag.js) - Google Analytics