Java顺序表模拟实现

        ArrayList是java的一种集合类,它的底层是一个可变数组,可以存放任何Object的协变类型的引用,即java中的所有对象。通过模拟实现ArrayList集合类,可以帮助我们了解其底层实现原理,以及简单泛型的使用。

        在MyArrayList类中有一个泛型数组,用于存放元素,以及最大容量capacity和目前存放元素的数量size,目的是为了方便统计,以及后面的扩容操作。给该类提供了一个无参的构造方法(默认初始容量为10),和带参构造方法(指定初始容量)。需要注意的是data为泛型数组,然而泛型数组不能直接new,我们暂且只能先创建一个Object类型的数组然后将其强制类型转换为泛型数组。

public class MyArrayList<T> {
    private int capacity;//最大容量
    private T[] data;
    private  int size;//目前存储元素的数量

    public MyArrayList(){
        this.capacity=10;
        this.data=(T[])new Object[capacity];
    }

    public MyArrayList(int capacity) {
        this.capacity = capacity;
        this.data=(T[])new Object[capacity];
    }

        然后我们为其提供添加元素的方法。使用者可以默认直接添加一个元素在数组末端,或者是将一个元素添加到指定位置,此时就需要将后面的元素依次往后移一位。需要注意的是添加元素前需要先检查顺序表是否已满,如果已装满则需要先扩容。当使用者指定下标时,需要先

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值