美文网首页
hashcode java

hashcode java

作者: 果酱一一 | 来源:发表于2016-03-18 18:54 被阅读53次
public native int hashCode();

根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的;

String hashCode()

    public int hashCode() {
        int var1 = this.hash;
        if(var1 == 0 && this.value.length > 0) {
            char[] var2 = this.value;

            for(int var3 = 0; var3 < this.value.length; ++var3) {
                var1 = 31 * var1 + var2[var3];
            }

            this.hash = var1;
        }
        return var1;
    }

这个方法的主要作用:
这个函数返回了一个int 类型的hashcode, 这个值代表了这个对象的一些基本信息,可以这样说hashcode函数主要用于粗略地判断两个对象是不是相等;主要对HashMap,HashTable这个数据结构有用,对List,数组意义不太;

** 在集合查找时,hashcode能大大降低对象比较次数,提高查找效率!**

Paste_Image.png

其一:在不自己实现hashCode()方法的情况下描述的是对象的物理地址信息,而我们一般重写equals方法进行对象的判等,对于对象的物理地址的描述信息有必要保存。

其二:java集合中存在一种无序但元素不重复的集合例如HashMap,保证元素不重复这个可以通过 equals方法来实现,不过当元素过多的时候,后添加的元素必然比较的次数过多。此时hashCode就非常有用了,因为其返回的是一个整数,我们可以对这个哈希值做相关处理形成对象插入数组的索引。

相关文章

网友评论

      本文标题:hashcode java

      本文链接:https://www.haomeiwen.com/subject/zrqhlttx.html