package com.zl.arry;
//时间:2012.4.8
//功能:自定义数组的增删改查
//作者:
public class ArryTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyArry arry=new MyArry();
//添加元素
arry.insert(35);
arry.insert(20);
arry.insert(65);
arry.insert(15);
arry.insert(85);
arry.display();
System.out.println();
//删除元素
arry.delete(3);
arry.display();
System.out.println();
//修改元素
arry.change(2, 50);
arry.display();
System.out.println();
//查找元素85
System.out.print(arry.search(85));
}
}
package com.zl.arry;
public class MyArry {
private long[] arry;
private int elements;//elements 默认为0
public MyArry()
{
arry=new long[50];
}
// 增加数据 按顺序增加
public void insert(long value)
{ int i;
for(i=0;i<elements;i++)
{
if(arry[i]>value)
{
break;
}
}
//将要添加的元素后的元素往后移一位从最后一位开始
for(int j=elements;j>i;j--)
{
arry[j]=arry[j-1];
}
//将要添加的元素加入到arry[i]中
arry[i]=value;
elements++;
}
//删除数组元素 通过覆盖的方法
public void delete(int index)
{
if(index<0||index>=elements)
{
throw new ArrayIndexOutOfBoundsException();
}
else
{
for(int i=index;i<elements;i++)
{
arry[index]=arry[index+1];
}
}
elements--;
}
//修改
public void change(int index,int value)
{
arry[index]=value;
}
//查询 通过二分查找
public int search(int value)
{
int low=0;
int top=elements;
int middle=0;
while(true)
{ middle=(top+low)/2;
if(arry[middle]==value)
{
return middle;
}
else
{
if(arry[middle]<value)
{
low=middle+1;
}
else
{
top=middle-1;
}
}
}
}
// 显示数组
public void display()
{
for(int i=0;i<elements;i++)
{
System.out.print(arry[i]+",");
}
}
}