public class DynamicArray {
public int[] array=new int[10];
public int count=0;
public void add(int obj){
count++;
if(count>array.length){
int[] newArray=new int[array.length+10];
for(int i=0;i<array.length;i++){
newArray[i]=array[i];
}
newArray[array.length]=obj;
array=newArray;
}else{
array[count-1]=obj;
}
}
public void delete(int j){
count--;
int[] newArray= new int[array.length-1];
for(int i=0;i<array.length-1;i++){
int t=i;
if(i>=j-1){
t=i+1;
}
newArray[i]=array[t];
}
array=newArray;
}
public void updata(int m,int s){
array[m-1]=s;
}
public void Traversal(){
for(int i=0;i<count;i++){
System.out.println(array[i]);
}
}
public int get(int j){
return array[j-1];
}
public static void main(String[] args) {
DynamicArray dy=new DynamicArray();
for(int i=0;i<11;i++){
dy.add(i);
}
dy.Traversal();
System.out.println(dy.get(4));
dy.updata(2,8);
dy.delete(1);
dy.Traversal();
}
}
运行结果:
0
1
2
3
4
5
6
7
8
9
10
3
8
2
3
4
5
6
7
8
9
10
改进:去掉else
public class DynamicArray {
public int[] array=new int[10];
public int count=0;
public void add(int obj){
count++;
if(count>array.length){
int[] newArray=new int[array.length+10];
for(int i=0;i<array.length;i++){
newArray[i]=array[i];
}
array=newArray;
}
array[count-1]=obj;
}
public void delete(int j){
count--;
int[] newArray= new int[array.length-1];
for(int i=0;i<array.length-1;i++){
int t=i;
if(i>=j-1){
t=i+1;
}
newArray[i]=array[t];
}
array=newArray;
}
public void updata(int m,int s){
array[m-1]=s;
}
public void Traversal(){
for(int i=0;i<count;i++){
System.out.println(array[i]);
}
}
public int get(int j){
return array[j-1];
}
public static void main(String[] args) {
DynamicArray dy=new DynamicArray();
for(int i=0;i<11;i++){
dy.add(i);
}
dy.Traversal();
System.out.println(dy.get(4));
dy.updata(2,8);
dy.delete(1);
dy.Traversal();
}
}