String的hashcode

作者: xpbob | 来源:发表于2018-01-04 22:29 被阅读22次

很多人说自己看过java源码,估计这个是个盲点,知道了感觉确实用处不大,不过见还真有人问,这里就简述一下。他的主要算法就是

    public int hashCode() {
        int h = hash;
        if (h == 0 && value.length > 0) {
            char val[] = value;

            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }

代码并不难,用数学公式推导一下就是:

hashcode = s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1];

相关文章

  • HashCode和Equals的区别

    HashCode和equals的区别: String方法的equals方法和HashCode方法 String的H...

  • 由hashCode()引发的一系列思考

    hashCode()方法实现 hashCode()属于String类,String类是一个被final修饰的类 当...

  • String HashCode

    数据结构,HashCode为什么使用31作为乘数 建议配合小傅哥的面经手册使用!!!从今天开始我是小傅哥的布道师 ...

  • String的hashcode

    很多人说自己看过java源码,估计这个是个盲点,知道了感觉确实用处不大,不过见还真有人问,这里就简述一下。他的主要...

  • Java-String类的hashCode方法

    首先来看一下String中hashCode方法的实现源码 1 public int hashCode() {2 ...

  • 深入理解 hashcode 和 hash 算法

    摘要 二进制计算的一些基础知识 为什么使用 hashcode String 类型的 hashcode 方法 为什么...

  • Java 语言中 String 类的 hashCode 方法

    首先我们先来看一下 String 的 hashCode 源码: String 中有个私有字段 hash,表示该字符...

  • 周题2

    11、String、StringBuffer与StringBuilder的区别12、Hashcode的作用,与 e...

  • String中hashCode算法

    说起hashCode是,就先说下HashCode一些关键点:1、hashCode的存在主要是用于查找的快捷性,如H...

  • String-hashcode疑问

    今天闲来没事看String的源码,在看到hashCode方法里的实现,总感觉有点问题,以前就是看看了实现并没有太在...

网友评论

本文标题:String的hashcode

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