java
ZhiYangX
这个作者很懒,什么都没留下…
展开
-
ArrayList源码解析
之前看过ArrayList源码(jdk l.8),但没有去记录它,今天想了一下还是应该记录一下。 ArrayList定义: 从类定义来看:支持泛型,有序集合,可随机访问,可克隆,可序列化 public class ArrayList<E> extends AbstractList<E> implements List&原创 2019-03-04 22:47:18 · 246 阅读 · 0 评论 -
HashMap部分源码解析
首先说下hashmap的优点:根据key找到元素位置取出元素,若不考虑冲突,可实现随机取值(时间复杂度为1),底层数据结构为数组,为解决hash冲突,使用拉链法,所以数组中存的是链表的首节点,冲突后构成一条单链表;为了提高查询速率,当链表节点个数符合特定条件,会把链表转化成红黑树。对比ArrayList和LinkedLi,它们都需要去遍历集合中元素,因为不知道这个值是否存在以及存在哪个位置。 ...原创 2019-03-01 21:24:11 · 237 阅读 · 0 评论 -
LinkedList浅析
LinkedList主要数据成员:size :链表大小 ;first: 持有第一个节点引用;last持有链表最后一个节点引用, 存储结构为Node,根据Node可以知道这是一个双向链表,可以双向遍历链表。 LinkedList:和ArrayList一样,线程不安全。 它也提供了下标访问和设置链表的方法,它不像ArrayList一样(ArrayList存储结构为一个object[]),Array...原创 2019-02-26 16:08:22 · 192 阅读 · 0 评论 -
HashMap中的迭代器实现与HashSet实现浅析
因为HashSet底层是使用HashMap实现的,或者说它只使用key,是一个删减版的HashMap,所以只简单讲一下 它的实现。 先看一下的主要数据成员(可以很清晰的看到它使用一个final修饰的Object对象作为value,这个值是不会变的,所以不能往里面存其他的value): private transient HashMap<E,Object> map; private ...原创 2019-03-04 12:25:42 · 793 阅读 · 0 评论