package data;
public class DynamicArray<T extends Comparable<T>> {
short index;
Object[] datas;
public DynamicArray(){
index=0;
datas = new Object[2];
}
void addData(T a){
System.out.println("当前数组大小:"+datas.length);
if(index>=datas.length-1){
Object[] tempData = new Object[datas.length*2];
System.arraycopy(datas, 0, tempData, 0, datas.length);
datas = tempData;
}
datas[index]=a;
System.out.println("curIndex:"+index);
index++;
}
void addSort(T a){
System.out.println("当前数组大小:"+datas.length);
if(index>=datas.length-1){
Object[] tempData = new Object[datas.length*2];
System.arraycopy(datas, 0, tempData, 0, datas.length);
datas = tempData;
}
short tempIndex = 0;
while(tempIndex<=index&& datas[tempIndex]!=null&&a.compareTo((T) datas[tempIndex])>0){
tempIndex++;
}
for(short temp=index;tempIndex<=temp;temp--){
datas[temp+1] = datas[temp];
}
datas[tempIndex] = a;
index++;
}
void display(){
System.out.println("current Data:");
for(short a=0;a<index;a++){
System.out.println(datas[a]);
}
}
}
其中的疑惑是该数组不能用T来初始化大小,然后只能用Object来代替所有数据类型作为一个通用的操作类,想实现有序数组就查看了T继承自comparable接口,还有动态数组实现使用系统提供的数组复制方法,不知道这样实现好不好,提下意见
关于动态数组的泛型实现
最新推荐文章于 2023-07-25 16:57:04 发布