1.ArrayList和linkedList有什么区别?
ArrayList:基于动态数组,连续内存存储,适合下标访问。扩容机制:因数组长度固定,数据超出数组长度时会建立新数组,如果不是尾部插入法还会涉及到元素的移动,使用尾部插入法并指定初始容量可以极大的提高性能,甚至超过LinkedList。
LinkedList:基于链表,可以储存在分散的内存中,适合对元素进行插入或删除等操作,不适合查询,因为需要逐一遍历,遍历LinkedList必须使用iterator,不能使用for循环,因为每次通过for循环体get(i)获取某一数据时都会对list进行重新遍历,性能消耗极大。
27. ArrayList 和 Vector 的区别是什么?
线程安全:Vector 使用了 Synchronized 来实现线程同步,是线程安全的,
而 ArrayList 是非线程安全的。
性能:ArrayList 在性能方面要优于 Vector。
扩容