随笔分类 - 源码
摘要:HashMap简介 HashMap是一种存储K-V类型的容器,HashMap底层数据结构为数组+链表+红黑树(jdk 1.8新增),它根据键的HashCode值存储数据,获取元素的时间复杂度为O(1)。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致
阅读全文
摘要:LinkedList源码分析 LinkedList底层数据结构是双向链表,它同时实现了List和Deque两个接口,插入和删除元素的时间复杂度均为O(1), 相比于ArrayList它在插入和删除元素操作上具有明显优势,同样它也是非线程安全的容器。由于实现了deque接口,因此linkedList也
阅读全文
摘要:ArrayList实现了List接口,它的底层数据结构是数组,因此获取容器中任意元素值的时间复杂度为O(1),新增或删除元素的时间复杂度为O(N)。每一个ArrayList实例都有一个capacity变量,capacity是ArrayList用于存储元素的容器大小,当有新元素添加到容器时,capac
阅读全文