我们先来看一下,不要着急啊大家不要着急,这些东西我肯定会一点一点会给大家去实现,最终实现到跟Java官方版本差不多,只要我们自己实现了,偶尔类似的,你会发现你倒回去看Java官方的那个源码,你会发现特别简单,跟我们写的几乎是一模一样啊。
然后我们看一下啊,那这个东西怎么去设计呢?首先一个动态数组的话,它里面应该有哪些成员变量呢?哪些成员变量呢?我们来看一下怎么去设计。我认为动态数组我们这个呃类似的应该至少包含两个成员变量,一个是size,一个是size,那成员变量肯定是弄成私有的size,这个是元素的数量,还有一个什么呢?
还有一个是用了存放元素,我叫做艾利曼斯,那既然我是数组,所以我这个艾利曼斯肯定是指向数组,比如说我申请了一段连续的存储空间,能够存放123456对吧?
这6个元素假设一开始能存放6个元素,所以我这个OMS应该会指向这个速度,那将来我们通过什么呢?我们通过这个爱的添加元素,我们就会把这个元素放到这个位置,放到这个位置一个一个往后面讲,万一空间不够怎么办呢?没关系,因为我们这个叫动态数组,将来肯定会对它进行扩容,那怎么扩容?
这个是后面的事情,我们先保证能存放元素先啊,所以我们这里面应该是有一个东西叫做应酬,还有你们然后这个类型是个速度,对吧?是个速度,所有的元素我们所有的元素都放这个地方,对吧?
那接下来呢我们再提供一个构造函数 or list,好,这个是一个构造函数,那构造函数这样子你想想我刚刚说了,一开始你看我们能存放6个元素,但是很多时候别人可能自己来指定一开始能放多少个元素,那这个事怎么办呢?
所以我觉得可以让别人传一个卡帕斯提进来,卡帕斯提就是容量,你希望你这个速度一开始容量是多少?
那这个时候我们完全该怎么样呢?首先我们的艾利曼斯,那比如说别人船的容量是10,就意味着一开始我们要开辟10个容量给他,对不对?还有一个那别人也可能不传这个容量,所以我提供一个无参的构造函数出来,那无参的构造函数但是又是多少呢?这样子假设我默认是10个,默认是存放10个,这样就解决了,对吧?