
java集合
文章平均质量分 54
零度212
这个作者很懒,什么都没留下…
展开
-
LinkedHashMap
直接先贴代码import java.util.ConcurrentModificationException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.NoSuchElementException;public class LinkedHashMa原创 2017-04-17 00:03:24 · 236 阅读 · 0 评论 -
HashMap源码解析笔记
1 默认加载因子0.75f2 hash数组默认是164 初始化时,如果传入了hash槽的容量大小,不是2的整数次幂,获取刚大于容量的整数次幂5 key和value都允许null 如果key为null 则数据放在table[0]6 关于hash因子,如果太大,空间能够充分利用,但是查询慢如果太小,没存入多少数据就需要开始扩容,但是查询速度快主要是链表的长度决定的,链表越长,查原创 2017-04-16 22:32:00 · 204 阅读 · 0 评论 -
java集合框架
源码看了容易忘记,尝试着自己写写,有问题欢迎指出原创 2017-04-16 14:44:21 · 207 阅读 · 0 评论 -
其他容器学习笔记
Vector1 Vector 没有实现序列化接口2 无参构造函数的默认值是10 3 添加数据需要判断是否需要扩容,扩大为原来的2倍3 很多方法添加了Synchronized同步语句块,是线程安全的4 元素允许为空5 jdk 1.0的产物,用的比较少了6 遍历数据用Enumeration,不能用IteratorhashTable1 结构跟HashM原创 2017-04-16 23:07:34 · 207 阅读 · 0 评论 -
LinkedList源码解析
1 实现了Deque,所以是双向链表,同时可以作为双向队列2 未实现RandomAccess,就不能随即访问,对于所有的数据结构都是这样,改接口只是起到标识作用3 实现克隆和序列化接口4 链表就会有节点Node,双向就会有first和last节点5 默认构造函数什么都没有做,链表不需要初始化大小6 jdk 1.6 有一个空的头结点,1.7没有 但是有first和l原创 2017-04-16 17:16:11 · 198 阅读 · 0 评论 -
ArrayList源码分析
ArrayList是基于数组实现的,可以扩展数组的长度。private transient Object[] elementData;非线程安全的,如果需要线程安全的可以用CopyOnWriteArrayListpublic class ArrayList extends AbstractList implements List, RandomAccess, Cloneab原创 2017-04-16 14:47:00 · 222 阅读 · 0 评论