• 彻底来理解下hashmap吧


    1.什么叫hashmap?

    答:首先是一种map集合,其次呢,它是一种利用hash表来存储的数据结构。所以叫hashmap.

    2.hashmap的特点是什么?

    答:hashmap的特点是key值不能重复,否则根据key,可以读取到多个对应的value了啊。

    3.那么怎么保证map的key不能重复呢?

    答:很简单,利用hashcode值是每个对象的一种状态这个属性来区分每个一个对象就行了嘛。

    hashcode值是每个对象的一种状态值。

    利用hash算法来计算得出的一种码值,hash算法要传入参数,这个传入的不同参数,决定了hashcode值得最终结果啊。

    比如,string,Integer这种封装类,已经重写了hashcode()这个方法,指定了利用string/integer具体的内容来进行hashcode算法传参。

    所以string值一样,那么这几个string对象的hashcode值夜一样。

    这就可以将string作为map的key啊,保证了key不重复。因为hashmap,底层实现原理是判断传入key的hashcode值来防止重复对象的。

    4.而普通Object类,默认的计算hacode值得方法hashcode()默认将对象的内存地址传参,进行hashcode值计算的。每个对象的内存地址当然都不一样啊,所以hasshcode也都不一样。即使内容相同的两个对象,由于内存地址不一样,而默认的hashcode()方法是计算内存地址传参的,也造成 了,依然可以放入hashmap中。

  • 相关阅读:
    Python 编码错误解决方案
    Slf4j 打日志的问题 Exception 没有堆栈信息
    朋友遇到过的t厂面试题
    php 加密解密算法
    mysql replace into用法详细说明
    python3 return print 之间的差异
    mac多版本python安装 pymysql
    thinkphp 在做搜索时的注意点
    get_object_vars()
    php中var关键字的作用和意义
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6127695.html
Copyright © 2020-2023  润新知