所谓的线性表,就是多个相同数据类型元素逻辑上呈直线排列,逻辑上连续。我们把这种结构称为线性表。
常见的线性表有:数组(顺序表),链表,栈,队列,字符串...(字符串本质是字符串数组 )
增加
1.add(int val):
向当前动态数组中添加元素 --> 添加到数组末尾。
import java.util.Arrays;
public class MyArray {
// data数组的长度可以由用户来指定。
private int[] data;
private int size;
public MyArray() {
// 默认开辟10个大小的整型数组长度
this(10);
}
public MyArray(int initCap) {
this.data = new int[initCap];
}
/**
* 在当前数组中添加一个新的元素val
*/
public void add(int val) {
data[size] = val;
size ++;
//元素再添加的过程中,可能把当前数组占满
if (size == data.length) {
// 此时数组已满,需要扩容
grow();
}
}
/**
* 对于外部的使用者来说,压根都不知道MyArray这个类中还有个int[],
* 数组的扩容对外部也是不可见的设置为private权限
*/
private void grow() {
//copyOf方法花卉扩容后的新数组
this.data = Arrays.copyOf(data,data.length * 2);
}
2.addIndex(int index, int val):
向当前动态数组中index索引位置添加一个值为val的元素
思路:要在数组的中间位置插入一个新的元麦需要把这个位置之后的所有元素向后移动—个单位,空出index索引位置的元素