String类的hashcode计算
来源:互联网 发布:mac spine1.7.03 安装 编辑:程序博客网 时间:2024/06/14 16:12
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;}
源码如上。
关于为什么取31为权
主要是因为31是一个奇质数,所以31*i=32*i-i=(i<<5)-i,这种位移与减法结合的计算相比一般的运算快很多。
比如:
String ss = "abc";String ss1 = new String("abc");String ss2 = "abc";System.out.println(ss.equals(ss1));//trueSystem.out.println(ss.equals(ss2));//trueSystem.out.println(ss == ss1);//false
hashcode值一样,对象不一定一样
对象一样,hashcode值一样
阅读全文
0 0
- String类的hashcode计算
- java String类计算HashCode散列码的方法
- JAVA中String类的hashCode方法
- Java中String类的hashCode方法
- 关于String的hashCode
- java string的hashcode
- String的hashCode分析
- String的hashcode(java)
- String的hashcode(java)
- String类中的HashCode
- String的equal与hashcode
- Java String的hashCode实现
- String的hashCode方法实现
- String hashCode() 设计的道理
- 计算hashCode的常见方法
- 计算hashCode的常见方法
- Java中hashCode的计算
- java 的hashCode值计算
- Java垃圾回收中对象的强引用,软引用,弱引用和虚引用
- 初识activemq
- 【读书笔记】Android源码设计模式解析与实战(四)——原型模式
- 集合(Collection)
- Java IO -- 字节流 & 字符流
- String类的hashcode计算
- 决策树之CART算法
- 【CSS揭秘】案例2、多重边框
- 我的mysql,随便写写
- 将网页嵌入到app中案例实现
- 医院软件实施工作
- 分布式系统的架构思路
- Android开发launcher、setting类应用时调用Android系统隐藏api的方法
- 算法练习---动态规划一(合唱团)