0
点赞
收藏
分享

微信扫一扫

数组、List中不同类的区别

西曲风 2021-09-25 阅读 62
日记本
ArrayList和Vector的区别

1、Vector是线程安全的,方法使用synchronized关键字修饰。ArrayList不是。
2、当需要扩容时,ArrayList扩容原来的0.5倍,Vector扩容原来的1倍。

Array和ArrayList的区别

1、Array可以存储对象或者基本数据类型,但是ArrayList只能存储对象。
2、Array是固定大小的,ArrayList是可以自动扩展的。
3、Array的内置方法没有ArrayList多。

Queue中的 poll 和 remove 的异同

相同点:
都返回队列的第一个元素,并从队列中删除这个元素。
不同点:
如果Queue为空,poll返回null。remove 抛出NoSuchElementException异常。

集合类实现原理

LinkedList:双向链表
HashMap:数组+单向链表+红黑树
HashSet:HashMap
LinkedHashMap:使用HashMap存储数据,使用LinkedList存储顺序。

HashMap 和HashTable 区别

HashMap 允许 key 和 value 为 null,Hashtable 不允许。
HashMap 的默认初始容量为 16,Hashtable 为 11。
HashMap 的扩容为原来的 2 倍,Hashtable 的扩容为原来的 2 倍加 1。
HashMap 是非线程安全的,Hashtable是线程安全的。
HashMap 的 hash 值重新计算过,Hashtable 直接使用 hashCode。
HashMap 去掉了 Hashtable 中的 contains 方法。
HashMap 继承自 AbstractMap 类,Hashtable 继承自 Dictionary 类。

JDK 1.7 和 1.8 HashMap 链表插入的区别

1.7 插入到头部
1.8 插入到尾部

举报

相关推荐

0 条评论