天猫Java一面
1. 常见集合类的区别和适用场景
List集合
ArrayList:
- 基于数组来实现集合的功能,内部维护了一个可变长的对象数组,集合扩容时会创建更大的数组空间,把原有数据复制到新的数组中。随机访问快,插入和删除的效率低。
LinkedList:
- 基于链表实现,数据的删除和插入快,随机访问的速度很慢。
####Map集合
HashMap:
- 线程不安全,存储键值对,允许 key 和 value 为 null
ConcurrentHashMap:
- 线程安全,不允许 key 和 value 为 null,使用的锁机制实现线程安全
TreeMap:
- 线程不安全,依靠comparator或comparable实现key的去重,TreaMap是有序的
