java编程题:自已封装一个动态数组类,可以根据用户传递的数据,动态的对数组的长度进行扩展;
类名是:MyArray;
代码:
import java.util.Arrays; public class MyArray { /* void add(int value); //追加一个值 vold remove(int index); //根据索引,删除一个值 void add(int position,int value); //在指定位置插入一个数值 void set(int position,int value); //修改某个位置的数值 int get(int index); //根据索引,获得元数的值 int size(); //获得动态数组中元素的个数;。*/ int values[] = new int[4];//存储数据的数组; int size = 0;//数组储存了实际数据的元素个数 public void add(int v){ if(size>=values.length){ //创建一个更大的数组 int temp[] = new int[size<<1];//左移一位相当于乘2; for (int i = 0; i <values.length ; i++) { temp[i] = values[i]; } values = temp; } values[size++]=v; } public void extendspace(){ if(size>=values.length){ //创建一个更大的数组 int temp[] = new int[size<<1];//左移一位相当于乘2; for (int i = 0; i <values.length ; i++) { temp[i] = values[i]; } values = temp; } } public void printInfo(){ System.out.println(Arrays.toString(values)); } public int size(){ return size; } public void add(int index,int value){ this.extendspace(); for (int i = size-1; i >=index ; i--) { values[i+1] = values[i]; } values[index] = value; size++;//一开始你记得,后来你忘了,好了,报错了; } public void remove(int index){ for (int i = index; i <size ; i++) { values[i] = values[i+1]; values[size] = 0; } size--; } public void set(int index,int v){ values[index] = v; } }
//测试
public class test { public static void main(String[] args) { MyArray a = new MyArray(); a.add(1); a.add(2); a.add(3); a.printInfo(); a.add(4); a.printInfo(); a.add(5); a.printInfo(); a.add(1,99); a.printInfo(); a.add(0,88); a.printInfo(); a.remove(0); a.printInfo(); a.remove(2); a.printInfo(); a.set(1,188); a.printInfo(); } }