import javax.management.RuntimeErrorException; public class MyArray { private long array[]; private int elements;//用于记录数组中实际数据的个数 public MyArray(){ array=new long[50];//数组默认长度为50; } public MyArray(int capacity){//设置数组的默认长度 array=new long[capacity]; } /** * 在数组末尾添加元素 */ public void add(long data){ if(elements>array.length){ throw new ArrayIndexOutOfBoundsException(); } array[elements]=data; elements++; } /** * 在index处插入元素data */ public void insert(int index,long data){ if(index>=array.length||index<0){ throw new IndexOutOfBoundsException(); } if(elements>array.length-1){ throw new ArrayIndexOutOfBoundsException(); } for(int i=elements;i>=index;i--){ array[i+1]=array[i]; } array[index]=data; elements++; } /** * 删除index处的元素 * @param index */ public void delete(int index){ if(index>=array.length||index<0){ throw new IndexOutOfBoundsException(); } for(int i=index;i<=elements;i++){ array[i]=array[i+1]; } elements--; } /** * 删除元素data * @param data */ public void delete(long data){ int addr=search(data); if(addr==-1){ System.out.println(data+"不存在"); }else{ for(int i=addr;i<=elements;i++){ array[i]=array[i+1]; } elements--; } } /** * 将index处的元素更新为newdata * @param index * @param newdata */ public void update(int index,long newdata){ if(index>=array.length||index<0){ throw new IndexOutOfBoundsException(); } array[index]=newdata; } /** * 查找index处的元素 * @param index * @return */ public long search(int index){ if(index>=array.length||index<0){ throw new IndexOutOfBoundsException(); } return array[index]; } public int search(long data){ int i; for(i=0;i<=elements;i++){ if(array[i]==data){ return i; } } return -1; } /** * 打印数组中的类容 */ public void display(){ System.out.print("["); for(int i=0;i<elements-1;i++){ System.out.print(array[i]+","); } System.out.print(array[elements-1]); System.out.println("]"); } }