集合的底层

ArrayList:

Collection和Collections的区别?

Conllection是集合类的上级接口,Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索排序、线程安全化等操作

list中得remove方法:如果是remove对象,那么只能remove一个对象,以为这个方法不会减少长度,所以,如果你想要remove下一个得话,他会找不到

ArrayList

默认初始化容量为0,当我们通过add方法添加集合元素是,他会判断我们要添加的元素下标是否大于内部数组的长度,如果大于数组内部长度的话,会调用grow()方法,自动扩容,扩容新数组长度为元素的1.5倍,在删除元素时,容量不会减少(如果想减少容量调用 trimToSize()),ArrayList是线程不安全的。

LinkedList

LinkedList基于双向链表实现的。,当我们调用LinkedList的add和remove方法的时候,我们就是改变节点的引用位置。

ArrayList和Linkedlist的区别

ArrayList实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构对于随机访问get和set,ArrayList要优于LinkedList,LinkedList不支持高效的随机访问。ArrayList适合查找,LinkedList适合增删

HashMap和ConcurrentHashMap的区别

1、HashMap不是线程安全的,而ConcurrentHashMap是线程安全的。

2、ConcurrentHahMap采取了分段锁,让锁的粒度更精细一些,并发性能更好。

猜你喜欢

转载自blog.csdn.net/qq_42430767/article/details/84847221