Java中ArrayList集合的构造方法

本文详细介绍了Java中ArrayList集合的构造方法,包括默认无参数构造和有参数构造时的初始化长度。当ArrayList容量满时,会自动扩容1.5倍。由于ArrayList基于Object数组,建议预估长度以减少扩容次数。ArrayList因增加元素快速和检索效率高而常被使用,但随机增删元素效率较低且不适用于大容量数据存储。
摘要由CSDN通过智能技术生成

关于ArrayList的构造方法:

1、ArrayList实现了List接口,底层是一个Object类型的数组Object[]。

2、默认无参数构造时数组长度为10,有参数构造时初始化指定长度的数组。

ArrayList list1 = new ArrayList(); // 初始化长度为0,当添加第一个元素的时候容量默认为10

ArrayList list2 = new ArrayList(20); // 指定初始化长度为20


3、注意:当列表容量满了时,继续添加元素时,数组会自动扩容,自动扩容到:旧容量 + (旧容量 >> 1),也就是1.5倍

参考源代码:ArrayList中的grow()方法调用Arrays.copyOf()方法,Arrays.copyOf的参数中newCapacity()方法算出扩容1.5倍。

ArrayList底层是Object数组,数组的扩容效率很低,所以建议预先估计长度的大小,减少自动扩容的次数。


4、问题:这么多集合中,什么集合用的最多?为什么?

答:ArrayList集合。增加元素快,直接在数组末尾添加。检索效率高,有下标,每个元素存的大小是一样的,通过数学表达式很快计算出各元素的地址,直接定位。


5、数组的缺点

数组也有缺点,随机增加,删除元素效率低,需要元素移位;

另外数组不能存储大容量数据,因为很难在内存地址中找到一块大容量的连续的空间。


测试代码:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;

public class Test06 {
   
    public static void main(String[] args) {
   

        ArrayList list1 = new ArrayList
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值