- 常见的三种哈希结构
- 数组
- set (集合)
- map(映射)
- HashSet
- 特点: HashSet 无序 (没有下标) ,不可重复
- HashSet 为 HashMap 的 key 部分
- TreeSet
- TreeSet 无序 (没下标) ,不可重复,但是可以排序
- TreeSet 为 TreeMap 的 key 部分
- map
- Map 和 Collection 没有继承关系
- Map 以(key ,value) 的形式存储数据: 键值对key 和 value 存储的都是对象的内存地址 (引用)
- Map 接口常见方法
- 注意:Map.Entry<K, V>是Map的一一个接口。接口中的内部接口默认是public static的。
- 总结
- 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。
- 哈希法是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。
- 哈希函数通过夜店的编码方式,可以将数据个数转化为不同的数值,映射为哈希表上的索引数字。
- 哈希碰撞是不同的数据同时映射到哈希表的同一个索引下标的位置。一般哈希碰撞有两种解决方法,拉链法和线性探测法。