序
数组最大的优点:快速查询。
数组最好应用于“索引有语意”的情况,但并非所有有语意的索引都适用于数组(例如:身份证号)。
当然数组也可以处理“索引没有语意”的情况。
接下来就基于java的数组,二次封装属于我们的数组类,并处理“索引没有语意”的情况数组的使用。
实现内容
- 实现数组的基本操作,包括增、删、查、改等方法;
- 使用泛型,使得数组可以放置“任何”数据类型;
- 实现动态数组,使数组的容量可伸缩;
- 在main函数中对Array方法进行测试,并通过println显示测试结果。
具体代码以及运行结果
1、Array.java
public class Array<E> {
private E[] data;
private int size;
/**
* 构造函数,传入数组的容量capacity构造Array
* @param capacity
*/
public Array(int capacity){
data = (E[])new Object[capacity];
size = 0;
}
/**
* 无参数的构造函数,默认数组的容量capacity=10
*/
public Array(){
this(10);
}
/**
* 获取数组中的元素个数
* @return
*/
public int getSize(){
return size;
}
/**
* 获取数组的容量
* @return
*/
public int getCapacity(){
return data.length;
}
/**
* 返回数组是否为空
* @return
*/
public boolean isEmpety(){
return size == 0;
}
/**
* 在第index个位置插入一个新元素e
* @param index
* @param e
*/
public void add(int index, E e){
if(index < 0 || index > size)
throw new IllegalArgumentException("Add failed.Require index >= 0 and index <= size.");
if(size == data.length)
resize(2 * data.length);
for