ArrayList和LinkedList区别
1.arrayList 底层是Object[]数组 LinkedList底层是链表 数组的内存是连续的,链表的内存不是连续的
2.arrayList查找快,O(1) 插入需要找到并全部移动 O(n) ,随机查询速度快 实现了RamonAccess
3.LinkedList的插入快,改变头节点和尾节点的指向就行,随机查询慢 实现了deque双端队列
4.占用内存arrayList需要在尾部预留空间插入,LinkedList需要保存pre data next
List和Set区别
List 有序,按照对象的进入顺序保存对象,可重复,可以使用Iterator取出所有元素,再注意遍历,可以使用get(int index)来获取指定下标元素
Set 无序,不可重复,最多允许一个null,取元素只能通过iterator接口取得元素对象,再注意遍历
HashMap
回答步骤
1.介绍hashMap的底层 和hashMap的几个关键数字
2.put和get
3.扩容
4.jdk1.7和jdk1.8的区别