话不多说,直接看实现原理的代码。
UnorderArray类
public class UnorderArray {
private long [] arr;
private int nElements;
public UnorderArray(int size){
arr = new long[size];
nElements=0;
}
//添加的方法
public void insert(long value) {
arr[nElements]=value;
nElements++;
}
//查找的方法
public int find(long value) {
int i;
for(i=0;i<nElements;i++) {
if(arr[i]==value) {
break;
}
}
if(i==nElements) {
return -1;
}else {
return i;
}
}
//删除的方法
public void delete(long value) {
int i= find(value);
if(i<0) {
System.out.println("没有你要删除的元素");
}else {
int j;
for(j=i;j<nElements-1;j++) {
arr[j]=arr[j+1];
}
}
nElements--;
}
//遍历
public void traverse() {
for(int i=0;i<nElements;i++)
System.out.println(arr[i]);
System.out.println();
}
}
测试类
public class UnorderArrayTest {
public static void main(String[] args) {
UnorderArray unorderArray = new UnorderArray(5);
unorderArray.insert(2);
unorderArray.insert(35);
unorderArray.insert(25);
unorderArray.insert(70);
unorderArray.insert(20);
//查找
int index = unorderArray.find(35);
System.out.println(index);
//删除
unorderArray.delete(35);
//遍历
unorderArray.traverse();
}
}
数组有很多的局限性,数组一旦被声明,大小不能改变,插入的顺序快,直接插入就行,查找和删除速度慢。