zoukankan      html  css  js  c++  java
  • HashMap 原理一

    java 面试基本操作

    每次看过以后就忘了,总记不住,自己在这里总结记录一下;

    HashMap   基础掌握    (HashMap和 ArrayList比较常用,也比较好用)

    1、 key  value 存储

    2、线程不安全

    3、存储结构 数组+链表

    4、存储过程:将要存储的数据key值计算hashCode 值,然后利用hashCode 值对数组长度求余,

       这样就得到了,数组下标(也就是数据要存储的位置),然后查看当前数组下标位置是否有值

      无值;则存入即可

      有值:判断新对象key值,是否与已存在的对象key值相等(链表对象中的key值相等),相等的话则覆盖旧值,

        否则将当前数组存储对象(key ,value ,next)的地址存储到新的对象(next中),然后新对象地址覆盖数组内容,

        这样每次新的对象都是在在最前面的(null值key一直放在最前面)

    5、如果链表长度大于等于8时,转换成红黑树,提高查询效率

    问题来了:

    1、为什么会出现hashMap 这样的结构,其他ArrayList ,LinkList 不能替换使用吗

    2、红黑树为什么会提高效率,为什么不用其他的树

    3、HashMap线程不安全的话,如何解决这个问题

    4、HashMap 具体实现原理

  • 相关阅读:
    LRU算法简介
    linux下安装nginx+php+mysql环境 详细教程
    CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3
    unicode 格式 转汉字
    js 操作cookie
    哈希函数
    php商城秒杀活动
    php 栈、 出栈、入栈
    php单例模式
    封装PHP增删改查方法
  • 原文地址:https://www.cnblogs.com/yutf/p/14247857.html
Copyright © 2011-2022 走看看