• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

数据结构笔记总结(1.2)二次封装属于我们自己的数组

极客笔记 Geekerstar 12个月前 (05-06) 570次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

数组基础回顾

  • 数组最大的优点:快速查询。比如:scores[2]
  • 数组最好应用于“索引有语意”的情况。
  • 但是并非所有有语意的索引都适用于数组

比如:身份证号:111492198512210111 虽然看起来像一个数,但不能作为数组索引,因为这个数太大了。

其实数组也可以用于处理“索引没有语意”的情况。本章我们主要处理“索引没有语意”的情况下数组的使用。

如图是一个待存放元素的一个数组空间,比如创建一个有八个元素的数组,当前我们只考察三个元素,此时就发现有问题了,剩下的空间里并没有存放元素,如果我们访问剩下的空间就是非法的。

从用户的角度来看,只有0,、1、2这些元素,那么我们如何表示那些没有的元素呢?

在这种情况下,我们也许还会往数组中添加或者删除元素,这些操作如何完成呢?

数组的大小在我们创建的时候就已经固定了,如果我们添加的元素超过了八个,此时该怎么做呢?

在这里要注意,java为我们提供的数组是没有这些功能的,我们必须编写自己的方法来为数组添加删除元素。

因此,我们需要基于java的数组,二次封装属于我们自己的数组类。

我们管这种数组叫动态数组,java原本的数组叫静态数组,在本章的最后,我们会对数组进行简单的时间复杂度分析。

制作属于我们自己的数组类

我们将完成数组的增删改查基本功能,由于数组本身是静态的,创建时必须指定大小,我们把这个大小叫“容量”,英文就是capacity,表示数组空间最多可以装下多少个元素。

注意:数组中最多装多少个元素和数组中实际装多少个元素是没有关系的,这是两回事,数组实际装多少个元素我们用size变量表示。

代码演示

完成新数组的成员变量设计,创建一个array类

public class Array {

    private int[] data;
    private int size;

    // 构造函数,传入数组的容量capacity构造Array
    public Array(int capacity){
        data = new int[capacity];
        size = 0;
    }

    // 无参数的构造函数,默认数组的容量capacity=10
    public Array(){
        this(10);
    }

    // 获取数组的容量
    public int getCapacity(){
        return data.length;
    }

    // 获取数组中的元素个数
    public int getSize(){
        return size;
    }

    // 返回数组是否为空
    public boolean isEmpty(){
        return size == 0;
    }
}

在下一节,我们继续进一步为我们自己的数组添加元素。

源码下载

下载地址

导航目录

查看导航
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:数据结构笔记总结(1.2)二次封装属于我们自己的数组
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00