20201008+袁鑫
学习日志:
知识总结:
LinkedList
LinkedList 的直接父类是AbstractSequentialList,实现了List、Deque
LinkedList是一个双向链表,允许存储null,此实现不同步(非线程安全的)
ArrayList / LinkedList比较
都实现了List接口,都是有序的、可以重复的、可以存null值的集合
- ArrayList在随机访问(获取元素时)效率比LinkedList高
- 在添加元素到末尾时,两个集合效率差不多
- 在任意位置添加元素时,LinkedList效率更高
- 在任意位置删除元素时,LinkedList效率高
- 内存,ArrayList使用的是连续空间。
Map
Map接口不是collection的子类,使用键、值映射表来存储
- Map不能有重复的键(覆盖),每个键可以映射到最多一个值
- 允许将映射内容是唯一组键,值集合或键值映射集合
- key不要求有序,value也不要求有序,但可以重复
- 当使用对象作为key时,要重写quals和hashCode方法
TreeMap
- 继承AbstractMap,一个红黑树基于NavigableMap实现
- 非线程安全
- key不能存null,但是value可以存null
- key必须是课比较的
Hashtable
- 该类实现了一个哈希表,他将键映射到值
- 不允许null作为键和值
- 初始容量(initialCapacity)为11,负载因子(loadFactor)为0.75f
- 线程安全的
- 不保证顺序
- 扩容方式是就容量的2倍+1
- 数组+链表
HashMap
- 基于哈希表的实现的Map接口
- 允许null的值和null键
- 非线程安全
- 初始容量16,负载因子0.75
- 扩容是2倍旧容量
HashMap 类大致相当于 Hashtable ,除了它是不同步的,并允许null
LinkedHashMap
- 哈希表和双向链表实现的Map接口
- 具有可预测的迭代次序(有序)
- 非线程安全
- 允许空元素
近期评论