20201008_陈宇_

日志

学习总结:

LinkedList:

​ LinkedList的直接父类是AbstractSequentialList,实现了 List、Deque

​ LinkedList是一个双向链表,允许存储 null

​ 此实现不同步(非线程安全的)

image-20201008195243316

​ 特点:

​ 删除和增加效率高

image-20201008195211497

ArrayList 和LinkedList:

​ 相同点:都实现了 List 接口,都是有序的、可以重复的、可以存null值得集合

​ 不同点:

​ ArrayList在随机访问(获取元素时)效率比LinkedList高

​ 在添加元素到末尾时,两个集合效率差不多

​ 在任意位置添加元素时,LinkedList效率更高

​ 在任意位置删除元素时,LinkedList效率高内存, ArrayList使用的是连续空间,LinkedList不一定是连续的空间

​ 推荐优先使用ArrayList

Map:

​ Map 接口不是 Collection 的子类

​ Map使用键、值映射表来存储数据

​ Map 不能有重复的键(重复的键的值会被后面相同名字的键的值覆盖),每个键可以映射到最多一个值

​ 允许将映射内容视为一组键,值集合或键值映射集合

​ key 不要求有序,value 也不要求有序,但可以重复

​ 当使用对象作为key时,要重写equals和hashCode方法

TreeMap:

​ 继承AbstractMap,一个红黑树基于NavigableMap实现

​ 非线程安全的

​ key不能存null ,但是value可以存null

​ key必须是可比较的

image-20201008195744279

Hashtable:

​ 该类实现了一个哈希表,它将键映射到值

​ 不允许null作为键和值

​ 初始容量为11,负载因子为0.75f 初始容量:initialCapacity 负载因子:loadFactor

​ 线程安全的

​ 不保证顺序

​ 扩容方式是旧容量的2倍+1

​ 内部存储方式:数组+链表

HashMap:

​ 基于哈希表的实现的 Map 接口

​ 允许null的键和值

​ 非线程安全

​ 初始容量16,负载因子0.75

​ 扩容是旧容量的2倍

​ 内部采用数组+链表实现 , JDK 8及以后版本增加红黑树的支持

HashMap和Hashtable:

​ HashMap和Hashtable大致相同

​ HashMap是不同步的(非线程安全),并允许存储null,其他和Hashtable类似

学习心得:

​ 这两天一直在学集合,学习下来有种它们都差不多的感觉,应该是搞混了,跟着浩哥一起了解它们最基础的东西,感觉有些绕,可能已经绕进去了,还是先把那些方法的用法先记下来吧,后面跟着用法再去理解它们的原理和区别,应该会好一些吧。

标签

评论

this is is footer