【java集合】

【java集合】,第1张

【java集合】

集合

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};
    List integerList = 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
}
linkedList

底层是双向链表

Java集合linkedList用法总结

数据结构与算法

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5712640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存