2019Java面试宝典系列|集合框架篇3
发布网友
发布时间:2024-09-29 15:26
我来回答
共1个回答
热心网友
时间:2024-10-07 17:06
在Java面试中,集合框架的知识至关重要。以下是关于几个关键集合类的对比和特性总结:
1. ArrayList与Vector的区别
ArrayList是线程不安全的,适合单线程环境,效率较高,增长策略为初始容量的1.5倍;
Vector是线程安全的,适合多线程,但效率较低,增长为初始容量的两倍。
2. HashMap与Hashtable
HashMap是非线程安全的,效率更高,允许空键值,而Hashtable不允许;
HashMap的contains方法被替换为containsValue和containsKey,避免了误解。
在多线程情况下,Hashtable自动同步,而HashMap需要额外处理同步。
3. List与Map
List存储有序且可重复的数据,如ArrayList、LinkedList;
Map存储无序的键值对,如HashMap,键值可以重复。
4. 集合接口关系
List和Set继承自Collection,Set不允许重复,List允许;
Map是独立接口,不继承Collection。
5. 集合操作特性
List支持按序号访问,Set使用equals判断重复,Map通过键获取值。
6. 存储性能
ArrayList/Vector使用数组,插入慢,索引快;LinkedList使用链表,插入快,索引慢。
7. 去重和辅助类
Set去重,如HashSet,通过equals方法判断;Collections提供集合操作的静态方法。