集合类(List)

2020-09-08  本文已影响0人  倚仗听江

ArrayList是什么?

底层是一个Object数组,比较适合随机访问,查询效率高,增删效率低,线程不安全。默认初始容量为10,实现了RandomAccess接口(决定使用什么遍历方式,若实现了该接口则使用for循环遍历;若没有实现该接口则使用迭代器遍历),查询的效率比较高,比较适合顺序添加,随机访问的场景。 实现了Cloneable接口,即实现克隆功能;实现Serializable接口,表示支持序列化。可以自动扩容,默认每次扩容为原来的1.5倍。对元素进行增删时,需要进行一次元素的复制操作,比较消耗性能。

ArrayList 和 Vector 的区别是什么?

  1. Vector使用synchronize关键字来实现线程安全。而ArrayList 是线程不安全的。
    ​2. ArrayList 的性能要优于Vector。
  2. ArrayList 和Vector都支持自动扩容,但ArrayList 默认为1.5倍而Vector默认为2倍。

ArrayList 和 LinkedList的区别是什么?

  1. ArrayList 底层使用动态数组,而LinkedList使用的是双向链表。
  2. ArrayList的随机访问效率要比LinkedList高,因为LinkedList的线性存储结构,需要移动指针从前往后一次查找。
  3. 在非首尾的增删操作,LinkedList的效率要高于ArrayList
  4. LinkedList比ArrayList 更占用内存,因为LinkedList的节点除了存储数据还存储了两个引用,分别指向直接前驱和直接后继。
  5. 综合来说,需要频繁读取集合中元素时,使用ArrayList ;在插入和删除操作较多时,使用LinkedList。

ArrayList和 Array有何区别?

  1. Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
  2. Array是指定大小的,而ArrayList大小是固定的。
  3. Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。
上一篇 下一篇

猜你喜欢

热点阅读