当前位置: 首页 > news >正文

做羞羞的事网站wordpress 水印 七牛

做羞羞的事网站,wordpress 水印 七牛,谈谈你对网络营销的认识,定期做图书推荐的网站HashMap中的元素的特点: HashMap中的所有key之间是不可重复的、无序的。所有的key构成一个Set集合。 HashMap中的所有的value彼此之间是可重复的、无序的。所有的value构成一个Collection集合。 HashMap中的一对key-value,就构成了一个entry。Map中的ent…

HashMap中的元素的特点:

HashMap中的所有key之间是不可重复的、无序的。所有的key构成一个Set集合。
HashMap中的所有的value彼此之间是可重复的、无序的。所有的value构成一个Collection集合。
HashMap中的一对key-value,就构成了一个entry。Map中的entry是不可重复的、无序的。所有的entry就构成了一个Set集合。

HashMap的源码剖析:

jdk7:

HashMap < String , Integer > map = new HashMap<>(); //①
map.put("AA",78);//②
①:创建对象的过程中,底层会初始化数组,长度为16,即:Entry[ ] table = new Entry[16];
②:“AA”和78封装到一个Entry对象中,将此对象添加到table数组中。

添加的过程:

将(key1,value1)添加到当前map中:
首先,需要调用key1所在类的hashCode( )方法,计算key1对应的哈希值1,此哈希值1经过某种算法(hash( ))之后,得到哈希值2。
哈希值2再经过某种算法(indexFor( ))之后,就确定了其在数组table的索引位置i。
        ·如果此索引位置i的数组位置上没有元素,则(key1,value1)添加成功。——情况①
        ·如果此索引位置i的数组位置上有元素(若为key2),则需要继续比较key1和key2的哈希值2。-->哈希冲突。
                    ·如果key1的哈希值与key2的哈希值不相同,则(key1,value1)也添加成功。——情况②
· 如果key1的哈希值与key2的哈希值相同,则需要则需要继续判断key1和key2的equals( )的返回值。要调用key1所在类的equals( )方法,将key2作为参数传入。
                                    ·如果调用equals( )方法,返回false:则(key1,value1)添加成功。——情况③
                                    ·如果调用equals( )方法,返回true:则认为key1和key2是相同的。默认情况下,value1替换原有的value2.

添加成功的情况:

情况①:直接将(key1,value1)存放到数组的索引i的位置
情况②与情况③:(key1,value1)元素与现有的(key2,value2)构成单向链表结构,(key1,value1)指向(key2,value2),jdk7中即头插法。

如果满足以下情况,会扩容:

当元素的个数达到临界值(数组长度*加载因子)时,就考虑扩容。默认的加载因子为0.75。默认扩容后为原来的两倍。
如果put方法是添加操作,会返回null。如果put是修改操作,会返回原来位置上的value值。

jdk8中:

①在jdk8中,当创建了HashMap实例以后,底层并没有初始化table数组。当首次添加(key,value)时,进行判断,如果发现table尚未初始化,则对数组进行初始化。(懒汉式)
②在jdk8中,HashMap底层定义了Node内部类(实现了Entry接口),替换了jdk7中的Entry内部类。即创建的数组是Node[ ]。
③在jdk8中,出现哈希值冲突的情况,判断相应的(key,value)可以添加到指定发生哈希冲突的索引上,采用的是原来的元素指向新的元素,即尾插法。
④在jdk7中,底层采用的是数组+单向链表。在jdk8中,底层采用的是数组+单向链表+红黑树。
使用红黑树的情况(单向链表转换为红黑树):如果数组索引i上的元素的个数达到8,并且数组的长度达到64时,就将此索引i位置上的多个元素改为使用红黑树进行存储。(红黑树进行put( )/get( )/remove( )等操作的时间复杂度为O(log n)),比单向链表的复杂度O(n)的要更好,性能更高。
红黑树退化(单向链表转换为单向链表)的情况:当使用红黑树的索引i上的元素个数低于6时,就会将红黑树结构退化为单向链表。

LinkedHashMap与HashMap的关系:

LinkedHashMap是HashMap的子类。
LinkedHashMap在HashMap使用数组+单向链表+红黑树的基础上,增加了一对双向链表,记录添加(key,value)的先后顺序。便于遍历所有的key-value。

HashSet和LinkedHashSet:

Hash底层使用的是HashMap。
LinkedHashSet底层使用的是LinkedHashMap。
HashSet的元素的值存储在底层的HashMap的key值中,而所有的key值对应的value值都是同一个Object对象,HashSet里用不上其value值。LinkedHashSet同理。
http://www.yayakq.cn/news/93907/

相关文章:

  • 做個app网站价格网站建设运营策划书
  • 上海网站开发企业淘宝不能开网站建设店铺吗
  • 并提示网站菜单导航及用户登录线下推广怎么做
  • 建设网站一般需要多少钱注册公司网站怎么做
  • 长春网站建设培训深圳企业网站建设价格
  • 建设工程教育网站论坛server 2012 做网站
  • 网站开发 招聘wordpress主题 自定义字段
  • 专业网站设计是什么网站结的建设ppt
  • codewars网站铁岭卫生职业学院官方网站建设
  • 网站制作建设需求ppt模板免费下载可爱
  • 网站安全风险评估报告泰达建设集团网站
  • 网站建设需求统计表网站转备案
  • 网站备案多久过期佛山模板建站代理
  • 安徽鲲鹏建设集团有限公司网站wordpress 读取分类
  • 做网站被黑后怎么办公司经营范围分类目录
  • seo综合查询工具下载网站做seo第一步
  • 网站建设托管合同海口网站建设设计
  • 建产品网站怎么做网上商城怎么开发
  • 商城网站建设定制网站建设idc数据中心
  • 服装网站开发方案swot温州网凝科技有限公司
  • 网站建设报价单及项目收费明细表wordpress导航栏锚点
  • 沈阳做企业网站的公司怎样做有效的黄页网站
  • 网站开发公司怎么接单子网页升级访问每天正常更新
  • 给个网站急急急2021啪啪男女禁做视频网站
  • 做高仿表网站容易被k吗沈阳网站公司哪个好
  • 站酷网入口石城县网站建设
  • 网站续费 多久网站建设在微信里打广告内容
  • 口碑好的网站建设门户网站的优缺点
  • ps外包网站移动应用开发就业方向和前景
  • 哈尔滨松北区建设局网站成都做公众号推广的公司