Java 零基础全套教程,数据结构与集合源码,笔记 168-174
Java 零基础全套教程数据结构与集合源码笔记 168-174一、参考资料【Java视频教程java入门神器附300道Java面试题剖析】 https://www.bilibili.com/video/BV1PY411e7J6/?p168share_sourcecopy_webvd_source855891859b2dc554eace9de3f28b4528二、笔记总结168、数据结构概述与手写线性表、二叉树169、ArrayList 在 JDK 7 和 JDK 8 中的源码剖析170、Vector、LinkedList 在 JDK 8 中的源码剖析171、HashMap 在 JDK 7 中的源码剖析- HashMap 中保存的是 Entry 对象key 和 value 都是 Entry 对象的属性。 - HashMap 在 JDK 1.7 中底层数据结构是数组链表JDK 1.8 中是数组链表红黑树。 - 在 JDK 1.7 中HashMap 在使用 put 方法添加元素时 - 会根据要添加元素的 key 的 hashCode 方法计算 Hash 值然后根据 Hash 值计算出元素在数组中的存储位置。 - 当数组当前位置已经存在元素时如果两个元素 key 的 hashCode 方法返回值不相同则说明是两个不同的元素把数组当前位置上原有的元素取出然后把新的元素添加到数组当前位置上新的元素的 next 属性指向原来的元素形成**链表结构**HashMap 中的元素都是 Entry 对象Entry 对象有 next 属性用于记录下一个元素的位置。 - 当数组当前位置已经存在元素时如果两个元素 key 的 hashCode 方法返回值相同equals 方法比较返回 true说明是两个相同的元素则把旧元素从数组位置上取出新的元素放到数组位置上**put 会返回被替换元素的 value 值**。 - 如果数组当前位置没有元素则直接添加元素到数组当前位置**put 方法返回 null**。172、HashMap 在 JDK 1.8 中的源码剖析173、LinkedHashMap、HashSet、LinkedHashSet 源码剖析
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2639005.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!