hash学习笔记
来源:互联网 发布:阿里云网站备案流程 编辑:程序博客网 时间:2024/06/05 04:24
概念:理想情况下,不经过任何比较得到记录。是数据到地址的一种映射关系。
一.基本知识
1.构造
线性,取余,取中。。。视(1)时间(2)关键字长度(3)表大小等构造
2.冲突
不同关键字可能得到同一哈希地址 SO
(1)开放定址法
①线性探测再散列:1,2,3,4.......
②二次探测再散列:1^2,-1^2,2^2,-2^2.........
③伪随机数序列:超过最大哈希地址则从头开始
(2)链地址法(-.-还是要比较呀)
当哈希地址相同时,储存在同一水平链上。
(3)其他
建立公共溢出区。再哈希法
3.查找(和构造差不多)
a(装填因子)=表中记录数/ 哈希表长度--------------------和平均查找长度有关P260
二.使用(JAVA)
(1)HashMap和Hashtable
HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要
区别在于HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
Hashtable 继承自Dictionary 类,而HashMap 是Java1.2 引进的Map interface 的一个实现。
最大的不同是,Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问
Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable 和HashMap 采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。
(2)HashMap的遍历
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();//关键字
Object val = entry.getValue();//值
}
- Hash函数学习笔记
- hash学习笔记
- hash算法学习笔记
- Hash table 学习笔记
- hash学习笔记
- Hash算法学习笔记
- 【学习笔记】hash表和hash函数
- perl 哈希(hash) 学习笔记
- ruby学习笔记(3)--Container(Array/Hash)
- HASH表学习笔记(转)
- 原创:Data Structure 学习笔记 之一 hash
- [wget学习笔记] 哈希表 hash table (ZZ)
- ruby学习笔记-hash方法汇总
- Cassandra学习笔记之一致性hash回顾
- redis学习笔记4,hash类型
- ruby学习笔记-hash方法汇总
- perl 哈希(hash)学习笔记(—)
- hash集合源码学习笔记(一)
- 安装mysql-5.7.11-winx64.zip 版本, 启动服务 遇 3534 错误的解决方法
- (java) Convert Sorted Array to Binary Search Tree
- linux命令总结
- const
- POJ 3009 DFS+剪枝
- hash学习笔记
- 7行核心代码对任何数据进行军事级别的加密或解密
- 项目--Combobox使用小结
- JVM 内存 (堆(heap)、栈(stack)和方法区(method) )
- Android开发教程(二)
- 快捷键
- 最小二乘法直线拟合、圆拟合
- 技术与业务之间的关系
- Java8中Lambda表达式的10个例子