Fork me on GitHub
摘要: HashMap 源码分析 0. 前置知识 0.1 位运算 0.2 哈希值、哈希表、哈希函数 哈希值 通过一定的散列算法,把一个不固定长度的输入,转成一个固定长度的输出,输出的结果我们称之为哈希 map中,hash就是一个int值 哈希表: 存储哈希值的数组 -- 存取散列值(哈希值)的一个容器 哈希 阅读全文
posted @ 2021-03-09 17:24 icewalnut 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 栈 先入后出 队列 先进先出 vector 想象成一个ArrayList,区别就是vector是线程安全的 Stack & Queue 关键点 Stack:先入先出;添加、删除皆为O(1) FILO stack是class Queue:先入先出;添加、删除皆为O(1) Queue是interface 阅读全文
posted @ 2021-03-09 14:49 icewalnut 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 回顾 单链表Linked List 查询 O(n)时间复杂度 如果要加速,关键在于升维 树 树和图(Graph)最关键的差别在于有没有环 有环就成了图 特殊情况下可以这样理解: ​ Linked List是特殊化的树 ​ Tree是特殊化的Graph 示例代码 Java public class T 阅读全文
posted @ 2021-03-09 14:43 icewalnut 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 数组、链表、跳表 Array Java, C++: int a[100]; Python: list = [] JavaScript: let x = [1, 2, 3] Java 里面是 ArrayList 直接访问任意一个元素时间复杂度都是O(1) Array 插入 、删除元素时间复杂度都是O( 阅读全文
posted @ 2021-03-09 10:00 icewalnut 阅读(32) 评论(0) 推荐(0) 编辑