java中ArrayList的实现

java中ArrayList集合的底层也是一种顺序表,使用数组实现,同样提供了增删改查和扩容操作

1、使用数组实现
ArrayList的add()方法中:elementData[s]=e,从这也可以看出ArrayList是线程不安全的。

private void add(E e, Object[] elementData, int s) {
        if (s == elementData.length)
            elementData = grow();
        elementData[s] = e;
        size = s + 1;
    }     

2、具有扩容操作
每次使用add方法时,根据一定算法,计算出新的大小,然后调用copyof函数进行扩容。

private Object[] grow(int minCapacity) {
        return elementData = Arrays.copyOf(elementData,                            
        newCapacity(minCapacity));
    }
public static <T> T[] copyOf(T[] original, int newLength) {
        return (T[]) copyOf(original, newLength, 
        original.getClass());
    }

3、遍历的方法
通过内部类Itr重写Iterator接口的hasnext()和next(),从而提高遍历方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>