线性表
线性表包括顺序表、链表、栈、队列等,本节重点学习顺序表。
顺序表
顺序表本质是对数组的封装,支持增删改查操作。

打印顺序表元素
/**
* 打印顺序表中的所有元素
*/
@Override
public void display() {
for (int i = 0; i < usedSize; i++) {
System.out.println(elem[i] + " ");
}
System.out.println();
}
往数组末尾添加元素
/**
* 添加元素:默认添加到数组的最后位置
* @param data
*/
@Override
public void add(int data) {
// 如果满了,要进行扩容
if (isFull()) {
// 二倍扩容 -> 拷贝完之后让 elem 指向一个新的数组对象
elem = Arrays.copyOf(elem, 2 * elem.length);
}
// 将元素放入数组中
elem[usedSize] = data;
usedSize++;
}
// 判断数组是否满了
@Override
public boolean isFull() {
return usedSize == elem.length;
}
通过调试可以看到,当数组元素超出其所能承载的容量大小时,可以通过 copyOf 进行扩容,从而将新元素放进去。
在指定位置添加新元素
插入逻辑如下:
- 从后往前移动元素。
- 将元素放进指定位置,并且更新元素个数。


