随笔分类 -  Java数据结构

摘要:TreeMap源码分析 数据结构 TreeMap使用红黑树来存储数据,红黑树是一种平衡二叉查找树,它是一种高效的搜索算法,它的算法时间复杂度是O(lgn) 增删改查 增改 public V put(K key, V value) { // 先获取根节点 Entry<K,V> t = root; // 阅读全文
posted @ 2022-09-27 12:53 鐡道 阅读(25) 评论(0) 推荐(0) 编辑
摘要:ArrayList源码分析 默认大小 // 根据传入的初始化大小创建对应的数组大小 public ArrayList(int initialCapacity) { if (initialCapacity > 0) { // 根据传入的值、创建对应的Object数组 this.elementData 阅读全文
posted @ 2022-09-27 10:54 鐡道 阅读(15) 评论(0) 推荐(0) 编辑
摘要:LinkedList源码分析 Node节点类 Node节点用于指向上一个节点和下一个节点、还有存在在链表中的值 private static class Node<E> { // 传入链表中的值 E item; // 用于指向下一个Node节点 Node<E> next; // 用于指向上一个Nod 阅读全文
posted @ 2022-09-23 20:01 鐡道 阅读(18) 评论(0) 推荐(0) 编辑
摘要:get分析 public V get(Object key) { // tab:指向数组 Node<K,V>[] tab; // e:指向key对应的Node节点、p: Node<K,V> e, p; // n:数组长度、eh:key对应节点的哈希值 int n, eh; // ek:key对应节点 阅读全文
posted @ 2022-08-31 20:23 鐡道 阅读(35) 评论(0) 推荐(0) 编辑
摘要:get逻辑: HashMap数据结构为数组加链表加红黑树、只有当链表数量大于8时、才将链表转换为红黑树、时间复杂度由链表的O(N)转换为红黑树的O(logN) // 主要看getNode下的方法、传入key的hash值和key public V get(Object key) { Node<K,V> 阅读全文
posted @ 2022-08-31 14:31 鐡道 阅读(94) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示