`
VerRan
  • 浏览: 459568 次
  • 性别: 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;
		    }
}
 
分享到:
评论

相关推荐

    深入 HashCode 方法~

    - 为了减少冲突,可以通过优化 `HashCode` 的计算方法,使不同的对象尽可能获得不同的 `HashCode` 值。 #### 四、HashCode 的注意事项 1. **HashCode 与 equals 的一致性**: - 如果两个对象相等(根据 `equals...

    重写equals和hashcode方法_equals_重写equals和hashcode方法_

    - 在 `hashCode()` 方法中,应使用对象的非空关键属性来计算哈希码,以保证不同对象的哈希码尽可能分散。 - 使用现有的工具类,如Java 7引入的`Objects.equals()` 和 `Objects.hash()`,可以减少出错的可能性。 总...

    equals与hashCode方法讲解

    equals 与 hashCode 方法讲解...equals 方法是比较两个对象的内容是否相等,而 hashCode 方法是根据对象的内容来计算哈希码。在实际开发中,我们需要根据具体情况来重写这两个方法,以确保对象的正确比较和哈希码计算。

    hashcode使用方法

    - **hashCode 方法**:利用 `Objects.hash` 方法结合 `id` 和 `name` 字段计算出一个哈希码。 #### 重写hashCode的注意事项 1. **一致性**:在一个执行期间,只要对象的状态没有改变,其 `hashCode` 方法应该始终...

    深入HashCode方法

    它们通过对象的HashCode计算出存储位置,即索引。这个索引是由对象的HashCode与0x7FFFFFFF进行与操作后再对容器长度取模得出的。这种方法确保了即使是负数的HashCode也能转化为正整数索引,从而适应数组的索引需求。...

    hashCode的作用

    `hashCode`方法是`java.lang.Object`类中的一个方法,所有Java类都继承自`Object`类,因此每个Java类都有`hashCode`方法。该方法返回一个整数,通常是对象的哈希值。哈希值是根据对象的内容计算出来的。 #### 2. ...

    set接口经常用的hashCode和equals方法详解

    - **定位元素**: 当向`HashSet`添加元素时,会首先调用该元素的`hashCode`方法,计算出其哈希码。哈希码被用来确定该元素在哈希表中的位置。 - **提高查找效率**: 如果哈希表中的某个位置上已有元素,则通过调用`...

    hashcode的作用

    在Java中,`hashCode()` 方法是 `Object` 类的一个重要成员方法,它返回一个整数,这个整数通常用来表示对象的哈希值。哈希值在Java集合框架中扮演着至关重要的角色,尤其是在散列表(如 `HashMap` 和 `Hashtable`)...

    深入理解Java中HashCode方法

    hashCode方法的实现方式有多种,String类的hashCode方法就是一个典型的例子,它使用数学表达式s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1]来计算hashCode值,其中s[i]是字符串的第i个字符,n是字符串的长度。...

    hashcode与eqault比较

    通常情况下,先通过`hashCode`值进行初步筛选可以显著提高性能,因为计算`hashCode`值比调用`equals`方法更快。 #### 四、案例分析 假设有一个类`Person`,包含`name`和`age`两个属性: ```java public class ...

    深入HashCode

    在计算机科学领域,特别是在Java和许多其他面向对象编程语言中,`hashCode()`方法是一个至关重要的概念。这个方法是每个对象都具备的,它返回一个整数值,通常用于快速比较对象或者在哈希表(如HashMap)中定位对象...

    如何生成一个合适的hashcode方法Java开发Java

    在Java编程语言中,`hashCode()`方法是每个对象都具备的一个关键组成部分,它与`equals()`方法一起工作,用于对象的比较和哈希表(如`HashMap`、`HashSet`等)的操作。本篇文章将深入探讨如何在Java中生成一个合适的...

    hashCode方法的使用讲解

    `hashCode`方法就是根据对象的内部状态计算出的一个整数值,通常这个值可以快速映射到哈希表的特定位置,也就是所谓的哈希桶。当尝试向集合中添加新元素时,首先调用该元素的`hashCode`方法,确定其在哈希表中的位置...

    equals,hashcode,toString

    通常会使用`Objects.hash()`或`Arrays.hashCode()`这样的工具方法来计算哈希码。 3. 在`toString()`方法中,构建一个包含所有或部分属性值的字符串,方便在控制台输出或日志中查看`DBObject`的状态。 了解并正确...

    JAVA hashCode使用方法详解

    在Java编程语言中,`hashCode()` 和 `equals()` 方法是两个非常重要的概念,尤其是在处理集合类如 `List`, `Set`, `Map` 时。它们主要用于优化存储和查找效率,尤其是当涉及到哈希表(如 `HashMap` 和 `HashSet`)时...

    Java中的equals和hashCode方法详解1

    在Java编程语言中,`equals()`和`hashCode()`方法是对象的基本组成部分,它们主要用于对象的比较和存储。这两个方法在`java.lang.Object`类中定义,因此所有的Java类都默认继承了这两个方法。然而,根据具体的应用...

    HashCode相同equals不同的2位字符集合算法

    在上述代码中,`Objects.equals()`和`Objects.hash()`方法确保了正确的比较和哈希计算,减少了潜在的错误。 总之,理解并正确实现`hashCode()`和`equals()`对于优化Java集合框架的性能和避免逻辑错误至关重要。在...

    浅谈Java中的hashcode方法(推荐)

    当向哈希集合中添加对象时,首先会调用对象的`hashCode()`方法来计算哈希码。如果哈希码在集合中不存在,那么对象可以直接被添加,无需进一步比较。如果哈希码已经存在于集合中,那么会调用`equals()`方法来确认对象...

    java中hashcode()和equals()的详解

    `hashCode()`方法则与`equals()`密切相关,它返回一个整数值,代表对象的哈希码,这个值是基于对象的特定状态计算出来的。在哈希表中,对象通过其哈希码快速定位。如果两个对象根据`equals()`方法判断相等,那么它们...

Global site tag (gtag.js) - Google Analytics