一、数组
1.数组的特点
1)获取或者设置数组的数据的速度是所有数据结构中最快的一种。
2)数组存储的内存空间是一个连续的空间,数组是线性的数据结构。
3)数组在定义的时候长度需要指定,数据类型也需要指定。
2.数组的缺点:
1)插入数据或者删除数据时不方便。
2)如果要存储的数据不确定的情况,而数组在定义的时候需要指定长度。
3)数组的空间太大了,数据较少;这样会浪费内存空间。
4)如果数据太多,而空间不够,这样就会引起数组下标越界异常(ArrayIndexOutOfBoundsException)
5)数据类型是固定的,如果在不同的地方使用的时候,那么存储的数据类型很有可能会发生改变,这样就不能适用于所有要使用的地方了。
二、数组队列
1、格式
int[] array = new int[10];
注意:1)array中存储的是数组对象在内存中的首地址。
2)java中是有指针的,但是是不能使用的。
3)array数组原来的存储空间,由JVM的GC垃圾回收机制,销毁数据,释放内存空间
GC:在如果内存不够的情况下(在特定的时间后),扫描内存空间,是否有空间被占用,有没有被使用的情况,有就释放内存空间
4)程序运行来后是运行JVM的内存上。
2、数组元素的增加原理
int[] array = new int[1];
array[0] = 100;
int[] array2 = new int[array.length+1];
array2[0] = array[0];
array2[1] = 20;
array = array2;
3、关于泛型
用一个大写字母来代替String,int等数据类型,引用的时候再具体指定。
实现类的时候,数组要定义成object类
Object[] array = new Object[0];
4、数组队列的实现
继承一个接口,接口中自定义数组队列的操作,如增加、删除、修改、查找等。
数组队列就是定义一个类,封装对数组的操作处理。
5、举例
定义接口
public interface MyArrayList<E> {
public void add(E e);//增加元素
public boolean add(int index , E e);//指定位置增加元素
public boolean remove(int index);//删除指定位置元素
public boolean update(int index,E e);//更新指定位置元素为新元素
public E get(int index);//获取指定位置元素
public int size();//数组队列长度
}