数据结构之数组(修改)

2018-05-13  本文已影响13人  Jack_7eb5

慢慢聊自己

今天会学习数组修改功能,修改的方法其实只有一个,也是最为简单的一个小节,这是自己理解的简单,要深究起来一点都不简单,很复杂的那种。

修改set

方法虽然简单,但是还是应该讲解一下,彼此加深印象。首先是判断,不可以小于0,不可以大于等于0。 这样判断以后我们的index就合法了,为什么要这么判断,不是显得很麻烦,这么看确实很麻烦的,但又是必须的,因为数组是有边界的,从0开始,结束于data.length,不可以无限大,总有个边界不是。但是对于平时的操作,你不能保证你每次输入都是对的,都在边界之内,做不到每次都正确,那就得固定下来,就像法律法规一样,确定下来,一旦违反就得承担后果。我们这里也是如此,违反了规则,就得抛出异常,就不得修改数据

这里我们补充一个方法,判断数组是不是空数组

空数组1 空数组2

应该是1还是2呢,这两个方法仔细看是不一样的哦,第一个是以数组容量作为判断,第二个是以数组元素个数作为判断。

应该是2,在我们这里数组的边界是[0,size),而不是capacity,我们所有的方法都是这么设计的。比如你在设置某个元素,只能设置索引号在[0,size)范围内的。这和我们第一篇文章提到的一样,size在这里很重要,它其实才是数组真的容量,这里的“真正”是对我们而言的,对计算机而言还是data.length是数组容量。[size,data.length)范围的元素是没有意义的,没有存储任何有效的值,对我们没有用处。

于是这里我们得出一个结论,判断一个数组是否是一个空数组,应该是针对数组中的元素来讲的,而不是数组的容量。就像汽车一样,载客量和核定载客量是不一样的,这也就有了超载情况的出现。

你可以看到,一个简单的问题,仔细讨论下去其实很难的,很难解释清楚。不细细了解,你会学的糊涂,忘得很快,经常不知所措

下期我们将讲解增删改查中的查,最后我们会优化这些部分,建立动态数组,时间复杂度分析,任务艰巨,任重而道远

期待下一期,再会...^_^

上一篇下一篇

猜你喜欢

热点阅读