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

数组基础回顾

  • 数组最大的优点:快速查询。比如: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;
    }
}

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

源码下载

[dm href=’https://www.jikewenku.com/product/1487.html’]下载地址[/dm]

导航目录

[dm href=’https://www.jikewenku.com/geeknote/2241.html’]查看导航[/dm]

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » 数据结构笔记总结(1.2)二次封装属于我们自己的数组

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多