动态数组
1.线性表
多个相同数据类型元素逻辑上呈直线排列
常见的线性表:数组(顺序表),链表,栈,队列,字符串..
物理连续并且逻辑连续:数组
逻辑连续物理不连续:链表
2.动态数组实现
数组在使用的时,数组长度确定,无法改变
动态数组:在普通数组的基础上增加了一个可以根据元素个数动态调整数组大小的功能
我们是程序设计者,并非创建一个新的数组,使用Java提供的数组类型,我们就是判断当前数组是否已满,若当前数组已经满了,就给它扩容
import java.util.Arrays;
/**
* 基于int的动态数组,根据元素的个数来动态调整数组大小
*/
public class DynamicArray {
private int[] data;
private int size;
public DynamicArray(){
this(10);
}
public DynamicArray(int initCap){
this.data = new int[initCap];
}
/**
* 在当前数组中新添加一个元素
* @param val
*/
public void add(int val){
data[size] = val;
size++;
if (size == data.length){
grow();
}
}
/**
* 在当前数组的index位置插入一个值为v