闪存散列代码的String类实现
来源:互联网 发布:nodejs 生成json文件 编辑:程序博客网 时间:2024/06/03 23:39
public class String {private int hash; public int hashCode(){if(hash!=0){return hash;}for(int i=0;i<length();i++){hash = hash*31+(int)charAt(i);return hash;}}}
因为散列表中费时多的部分就是计算hashCode,在String类中的hashCode方法包含一个重要的优化,每个String对象内部都会存储它的hashCode值,该值初始值是0,但若hashCode被调用,那么这个值就被记住,因此如果hashCode被同一个对象两次调用,则可以避免昂贵的重新计算这个技巧叫做闪存散列黛米。
闪存散列代码之所以有效是因为String类是不可变的。
0 0
- 闪存散列代码的String类实现
- 如何实现用代码操作网络单片机W7100A的代码闪存
- System.String 类的实现代码
- C++类String的实现代码
- String类的函数体实现代码
- 闪存的特点:
- 闪存的使用
- stm32闪存的理解
- 散列结构的实现
- string类的实现
- String类的实现
- String类的实现
- String类的实现
- String 类的实现
- String类的实现
- string类的实现
- String类的实现
- String类的实现
- 你应该放弃的八大设计元素
- 三个不执着——摆脱功名利禄的束缚
- 点击scrollview释放键盘触发touchesBegan方法
- Makefile语法简介
- ios--图片转PDF的实现方法
- 闪存散列代码的String类实现
- LED点阵屏中“鬼影”现象的分析与解决
- uva - 10714 - Ants(数学推导、蚂蚁问题)
- OPENGL网站
- Android中可以暂停和恢复的线程
- 怎样阻止超链接跳转
- expdp/impdp
- 做easyui中的树和datagrid的一个案例(SSH,easyui)
- linux高端内存管理之永久内核映射