HashMap本质是哈希表,通过k-v存储数据,映射关系通过哈希函数构造。
哈希函数的实现方式
1.直接定址法:取关键字的线性函数值作为哈希地址。
2.数组分析法:取关键字中的若干位作为哈希地址。
3.平方取中法:取关键字平方后的中间几位作为哈希地址。
4.折叠法:将关键字分割成位数相同的几部分,然后这几部分叠加作为哈希地址。
5.除留余数法(常见)
6.随机函数法
能够解决哈希冲突的方法
哈希冲突:若干个key对应相同的哈希地址。
解决方法:
1.开放地址法
2.链地址法:将所有哈希地址冲突的记录存储在同一个线性链表中。
3.公共溢出区法:将所有哈希地址冲突的记录都填入到溢出表中。
4.再哈希法
HashMap的遍历
Map map = new HashMap();
Iterator iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Entry entry = (Entry)iterator.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
网友评论