集合篇--HashMap

HashMap 带给大家:

国际惯例:


看了半天简介,感觉没有一句可以直接认知到HashMap的话,所以就不划重点了.

JDK1.7:先声明 我介绍的是关于jdk1.7的hashmap.是数组加链表的结构.

HashMap 哈希表结构:

那到底什么是哈希表?鄙人说实话对于这个也不是很理解,各位看官就当看个乐.

**我的理解就是:通过一个映射函数,获取key的hash值,将这个hash值作为无序数组的索引,将这个键值对放到这个位置.

当你进行检索操作时,直接根据这个hash值找到元素位置.

**但是当几个key都有相同的hash值时怎么办?这就是所谓的hash冲突..

在hashmap中采用拉链法实现,用链表实现,将产生冲突的键值对链接到链表上.

说的好像有点抽象,那么我来画一幅图来展现一下.


不过这个图有个问题,就是我们hashmap实现中,是将后put的这里就是sg作为链表的头,之后为他的next,即后继;

这幅图应该可以让大家简要的了解一下hashmap的数据结构和检索方式.

那么我们今天就不进行测试了,直接进入HashMap的源码中探索.


entrySet()方法和这个大同小异,追踪下去可以发现,一个返回的是entry.getkey,另一个是entry;


大喘一口气,终于简略的写出来了...

不过还有许多的方面没有写,只是因为鄙人暂时能力不足,以后都会写出来的,但是写的这些大致可以看到实现了hashmap我们平时用的功能.

我们下次见-- hashset集合--hashmap的key.....



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值