免费app制作工具_重庆网站建设的目的_百度推广一天烧多少钱_想要网站推广页
2025/3/18 9:51:20
来源:https://blog.csdn.net/SLFG_Ts/article/details/146259702
浏览:
次
关键词:免费app制作工具_重庆网站建设的目的_百度推广一天烧多少钱_想要网站推广页
免费app制作工具_重庆网站建设的目的_百度推广一天烧多少钱_想要网站推广页
ArrayList
- 底层是数组队列,相当于动态数组。
ArrayList
中维护了一个Object
类型的数组elementData
transient Object[] elementData;
ArrayList
中可以存储任何类型的对象,包括 null
值。不过,不建议向ArrayList
中添加 null
值,会让代码难以维护比如忘记做判空处理就会导致空指针异常。ArrayList
基本等同于Vector
,除了ArrayList
是线程不安全(执行效率高)。 ArrayList
是 List
的主要实现类,底层使用 Object[]存储,适用于频繁的查找工作,线程不安全 。
Vector
是List
的古老实现类,底层使用Object[] 存储,线程安全。
- 当创建
ArrayList
对象时,如果使用的是无参构造器,则初始elementData
容量为0。第1次添加,则扩容elementData
为10,如需要再次扩容,则扩容elementData
为1.5倍。 - 如果使用的是指定大小的构造器,则初始
elementData
容量为指定大小,如果需要扩容,则直接扩容elementData
为1.5倍。
Vector
- 当创建
Vector
对象时,如果使用的是无参构造器,则初始elementData
容量默认为10。如需要再次扩容,则扩容elementData
为2倍。 - 如果使用的是指定大小的构造器,则初始
elementData
容量为指定大小,如果需要扩容,则直接扩容elementData
为2倍。
LinkedList
- 底层是双向链表。
- 可以添加任意类型的元素,包括
null
值,可重复。 - 线程不安全。
LinkedList
中维护了两个属性first
和last
分别指向首节点和尾节点。- 每个节点(
Node
对象)又维护了prev
、next
、item
三个属性,其中通过
prev
指向前一个节点,通过next
指向后一个节点。