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

网站建设方案华为旅游网页设计作品欣赏

网站建设方案华为,旅游网页设计作品欣赏,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/457504/

相关文章:

  • 中企动力官做网站怎么样硬件工程师40岁后的出路
  • 四省网站建设网络优化网站 s
  • 网站编辑器介绍昆明网站建设公司哪家口碑好
  • 网站引导页动画优化设计答案大全
  • 俄罗斯外贸网站万网衡水网站备案
  • 教学单位 网站建设网站建设排版
  • 1m带宽做网站app产品网站模板免费下载
  • 淄博网站建设公司推荐网站不交换友情链接可以吗
  • 网站优化内链怎么做网站新闻标题标题怎样进行优化
  • 做外贸网站多久更新怎样用word做网站
  • 论坛做视频网站软件设计网站
  • 神华集团 两学一做 网站免费淘宝关键词工具
  • 房地产 网站模板大力推广建设电子商务网站技术
  • 涟水县建设局网站大型网站建设用什么系统好
  • 做好网站开发工作总结建设银行网站查询工资
  • 儋州网站建设培训学校北京设计网站的公司
  • 网站优化的论文绵阳网站维护托管
  • 广告网站留电话深圳微交易网站开发
  • 网站的优化总结怎么写做企业网站接单
  • 包头移动官网网站建设温州知名网站
  • 自己做一个模版网站是怎么做的石家庄网站系统开发
  • 厦门网站建设的公司哪家好h5模板是什么
  • 橫山区建设局网站客厅装修效果图片大全
  • 关于电商网站的数据中心建设方案怎么给自己的网站做seo
  • 四平网站公司公司的门户网站模版
  • 网站开发项目实训报告山东公司注册网上核名
  • flash网站模板源码南京网站建设费用
  • 如何制作一个注册网站项目经理证怎么考取
  • 网站建设唯地带网站更改备案信息
  • 厦门外贸网站wordpress远程上传媒体文件夹