数据结构学习小结---Array(数组)

数组的创建:
在创建属于我们自己的数组的时候,
首先我们要么明确我们需要两个私有的变量就是数据E[](泛型数组) 和 size(元素个数)

在创建构造方法的时候我们需要对私有变量属性进行初始化
无参构造时,我们要设定默认的参数值

创建数组包含的方法:
1> 获取元素个数 getSize 这里我们只需要返回一个int型数据(即return size)
2> 获取数组的容量:即调用数组的length属性即可
3> 判断是否为空 :即判断size 是否为0;
4> 在任意位置添加元素:方法参数需要元素及添加的位置(int index,E e)
首先为了程序的安全性能更高,我们需要加入判断条件,即index超出操作范围需要抛出异常
添加操作index之后的每一个元素需要往后移一位以便于给添加的元素
腾出空间
(特别提示:因为考虑到空间满的问题 我们需要加入一个空间扩容及
缩容的机制,即当数组元素满时即(size == data.length)我们需要创建
一个更大的数组并把原数组对应的元素放过去,如果空间空的太多时
我们需要缩小空间 缩小的条件一定要比扩大的条件倍数大 防止复杂度
震荡问题)
添加头元素与为元素调用任意处添加元素给参数即可
5> 获取index及修改元素 : 直接调用数组的索引找到位置,重新赋值即可
6> contains方法:遍历数组进行比对即可
7> find元素方法:直接遍历数组对数据进行比对最后返回index
8> 删除元素: 传入删除的index,找到位置之后,后面的元素都往前移一位
(仍需考虑复杂度震荡问题)
9> 删除全部:调用删除单个元素方法即可

注:数组复杂度震荡问题:
即我们在给数组进行扩容或者缩容的条件度一致,导致会出现增加一个元素就扩容,删除一个元素立马缩容的问题。

/*
对数组进行扩容或者缩容的操作,核心在于创建一个新的容量更大或更小的数组
把之前数组中的元素全部传递到新的数组
*/
private void resize(int newCapacity){
        E[] newData = (E[])new Object[newCapacity];
        for (int i=0; i<size; i++){
            newData[i] = data[i];
        }
        data = newData;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值