ArrayListlinkedList
ArrayList底层是数组,可以动态扩容的数组,初试容量是10,扩容因子1.5,每次扩容1.5倍,线程不安全
Java面试之ArrayList为什么线程不安全?
Vector:Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢
使ArrayList线程安全 方法: List list = new ArrayList<>(2); List list1 = Collections.synchronizedList(list); ArrayList包装成线程安全的List后,和Vector的性能差不多
面试题:
public static void main(String[] args) { Integer[] array = {1,2}; ListlinkedListintegerList = Arrays.asList(array); Object[] objectArray = integerList.toArray(); System.out.println(objectArray.getClass()==Object[].class); //false System.out.println(objectArray.getClass()); //class [Ljava.lang.Integer; System.out.println(Object[].class); //class [Ljava.lang.Object; List list = new ArrayList<>(); System.out.println(list.toArray().getClass()==Object[].class);//true List list2 = new ArrayList(); System.out.println(list.getClass()==list2.getClass());//true }
底层是双向链表
Java集合linkedList用法总结
数据结构与算法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)