冰冻非一日之寒
为什么二次封装数组
对于数组来说,索引是最重要,索引分为“有语意”和“无语意”两类。
索引“有语意”的数组:比如scores[2]表示学号为2的学生的成绩,即其中的2代表学号为2。
索引无语意的数组:比如scores[2]表示数组中位置为2的数据元素,即这个成绩只是放在了数组scores中的2位置上了(它是可以放在其他位置上的)。
数组适合存放索引有语意的数据,这样可以快速查询数据。假如索引没有语意,用其他的数据结构存放数据或者是更好的选择。
但是,也并不是所有有语意的索引都适用于数组。eg,身份证号 411627198607716524,显然,开辟一个如此大的数组是不合理的。再或者,当我们调查一个有10个人的工作小组的工资状况时,开辟这么大的空间,只存放10组数据,造成了严重的浪费。
当然,数组也可以处理“索引没有语意”的情况,二次封装数组也是为了处理“索引没有语意”的情况数组的使用。
对于“索引没有语意”的数组score[7],我们存放3个元素,数组有4个位置是空的
从用户的角度来看,后4个位置是没有元素的,访问是非法的。
那么,该如何表示没有元素?如何添加元素?删除元素?如何添加超过7个的元素……
对于java自带的数组,是解决不了以上问题的。所以,我们需要二次封装数组,可以实现对数组进行 增、删、改、查。就像开发时,对数据库里面存储的数据进行高效的操作(增删改查)
数组本身是静态的,因为创建时就要确定其容量(数组的length)。而我们二次封装后,我们称数组为“动态数组”,即数组的容量根据需求是可变的。
下面,先为数组(Arrar 类)定义一些成员变量
一些简单的方法
下一节,让我们的数组使用泛型