目录
一、什么是线性表
所谓线性表,就是多个相同数据类型的元素逻辑上呈直线排列,逻辑上连续。
常见的线性表有:数组(顺序表),链表,栈,队列,字符串(char数组)...
二、什么是动态数组
Java中提供的数组都是静态数组,即在一个数组定义时确定长度后,使用过程中无法修改此长度。
动态数组就是在普通数组上,增加了一个可以根据元素的个数动态调整数组大小的功能。
三、动态数组的增删改查方法的实现
public class MyArr {
private int[] data;
//表示当前数组中已经存储的元素个数
private int size;
//通过构造方法,传入一个长度为length的整形数组
//data数组初始化,产生一个新的数组对象
public MyArr(int length) {
this.data = new int[length];
}
//在数组末尾添加一个值为val的元素
public void add(int val) {
data[size]= val;
size ++;
//判断数组是否已满,是否需要扩容
if (size == data.length){
grow();
}
}
//在数组的index索引位置添加一个值为val的元素
public void add(int index ,int val) {
//首先要判断索引位置是否合法
if (index < 0 || index > size) {
//错误输出
System.err.println("索引非法,请重新输入");
}
int ret = data[index];
for (int i = size - 1; i >