12 2018 档案

摘要:LinkedList底层是一个双向链表。之所以说是双向的,是因为同时维护了当前节点的前节点和后节点。 可以看下节点的结构: item就是当前节点的元素,next指向当前节点的后一个节点,prev指向当前节点的前一个节点。 和ArrayList的对比 其实就是链表和数组的对比。 插入,删除: Arra 阅读全文
posted @ 2018-12-28 10:20 boogieman 阅读(625) 评论(0) 推荐(0)
摘要:ArrayList可以说是一种很常用很常用的数据结构了。 ArrayList底层是通过数组实现的。可以看下源码(基于JDK1.8) 首先从构造函数说起,总共有三种构造函数: public ArrayList(int initialCapacity) { if (initialCapacity > 0 阅读全文
posted @ 2018-12-21 17:11 boogieman 阅读(381) 评论(0) 推荐(0)
摘要:优点:查询速度快,理想状态下时间复杂度是O(1) 缺点:空间利用率不高 HashMap是通过数组加链表来实现的。所以一个好的hash算法需要能将key值尽可能地均匀分布到整个数组中。但是再好地hash算法也无法避免 随着数组位置被填充得越来越多,计算后落在数组同一位置的概率会越来越大。所以HashM 阅读全文
posted @ 2018-12-11 11:08 boogieman 阅读(296) 评论(0) 推荐(0)