-- 数据结构 顺序表 --Java

顺序表:使用一段物理地址连续的储存单元依此储存元素,一般使用数组实现顺序表的增删查改

实现

顺序表其实就是将元素储存到一个数组中,并且这个数组会根据你的插入的数据的增加而自动进行数组的扩容

字段的设计

使用了多态是为了能储存各种类型的数据,继承的接口是把要写的方法卸载接口中然后再类中实现这样方便管理

default是默认的数组的大小,size是储存的元素数量,capacity是储存元素的数组

增 add

直接将要添加的元素加入size指向的位置就好,应为size指向的正好是第一个没有储存数据的空位置,插入后size++记录下插入的元素个数,在插入时可能会存在数组储存满

(size == capacity.length)了的情况,那么这时我们就需要对数组进行扩容,对于扩容具体要扩多大,这里使用的是1.5倍

删除 remove

要删除首先要找到要删除的这个元素,然后将这个元素后面的元素向前移动一步,覆盖掉要删除的这个元素,这时我的删除就写好了

为了找到这个元素,我们只需要遍历有效数据数量而不是整个数组

查 get

遍历整个有效数据,若存在就返回true,若不存在返回false

改 set

更改指定下表的值,要注意下表的合法性

这里如果不合法会抛出自定义的异常

增删查改over

接下来还可以写出自己需要的各种方法 指定位置的插入 清空顺序表等等

顺序表可以实现数据的随机查询,因为数据是连续的,只需要输入对应的下标就可以查询

对于顺序表的最大弊端就是会造成空间的浪费,比如他扩容了100个整形的位置但是可能在我存储到50个就没有数据的存储了,那么就造成50个空间的浪费,若要避免空间的浪费,那么就可以使用另一种数据结构链表

end 

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值