java数据结构系列之——数组(1)

时间:2023-12-17 17:13:26
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("]");
}
}