(二)数组基础知识

一:老式面向过程的数组应用

package JavaApp_Array;

/**
 * 老式面向过程的数组应用
 * 
 * @author qingshuang
 * 
 */
public class ArrayApp {

	public static void main(String[] args) {
		long[] arr;// 声明数组
		arr = new long[100];// 创建数组
		int nElems = 0;// 数组的个数
		int j;
		long searchKey;
		arr[0] = 77;
		arr[1] = 99;
		arr[2] = 44;
		arr[3] = 55;
		arr[4] = 22;
		arr[5] = 88;
		arr[6] = 11;
		arr[7] = 00;
		arr[8] = 66;
		arr[9] = 33;
		nElems = 10;
		// 显示所有元素
		for (j = 0; j < nElems; j++) {
			System.out.print(arr[j]+" ");
		}
		System.out.println();
		// 查找66
		searchKey = 66;
		for (j = 0; j < nElems; j++)
			if (arr[j] == searchKey)
				break;
		if (j == nElems)
			System.out.println("不能找到" + searchKey);
		else
			System.out.println("已经找到" + searchKey);
		//删除一个数据项
		searchKey=55;
		for(j=0;j<nElems;j++)
			if(arr[j]==searchKey)break;
		for(int k=j;k<nElems;k++)
			arr[k]=arr[k+1];//后面的数据往前面移动
		nElems--;//没删除一个数据,数据的总量都要减少一个
		//显示所有
		for(j=0;j<nElems;j++)
			System.out.print(arr[j]+" ");
		System.out.println();
	}

}


二:面向对象的简单数组类实例

创建的简单数组类

package JavaApp_Array;
/**
 * 面向对象的简单数组类实例
 * @author qingshuang
 *
 */
public class LowArray {
  private long [] a;//存储数据的数组
  //构造函数
  public LowArray(int size){
	  a=new long[size];
  }
  //添加元素
  public void setElem(int index,long value){
	  a[index]=value;
  }
  //得到元素
  public long getElem(int index){
	  return a[index];
  }
}

测试类

package JavaApp_Array;

public class LowArrayApp {

	/**
	 * 面向对象的简单数组类实例测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		LowArray arr;
		arr = new LowArray(100);
		int nElems = 0;
		int j;
		long searchKey;
		arr.setElem(0, 77);
		arr.setElem(1, 99);
		arr.setElem(2, 44);
		arr.setElem(3, 55);
		arr.setElem(4, 22);
		arr.setElem(5, 88);
		arr.setElem(6, 11);
		arr.setElem(7, 00);
		arr.setElem(8, 66);
		arr.setElem(9, 33);
		nElems = 10;
		// 显示所有元素
		for (j = 0; j < nElems; j++)
			System.out.print(arr.getElem(j) + " ");
		System.out.println();
		// 查找66
		searchKey = 26;
		for (j = 0; j < nElems; j++)
			if (arr.getElem(j) == searchKey)
				break;
		if (j == nElems)
			System.out.println("不能找到" + searchKey);
		else
			System.out.println("已经找到" + searchKey);
		// 删除一个数据项
		searchKey = 55;
		for (j = 0; j < nElems; j++)
			if (arr.getElem(j) == searchKey)
				break;
		for (int k = j; k < nElems; k++)
			arr.setElem(k, arr.getElem(k + 1)); // 后面的数据往前面移动
		nElems--;// 没删除一个数据,数据的总量都要减少一个
		// 显示所有
		for (j = 0; j < nElems; j++)
			System.out.print(arr.getElem(j) + " ");
		System.out.println();
	}

}



三:面向对象的高级数组类实例

创建的高级数组类

package JavaApp_Array;
/**
 * 面向对象的高级数组类实例
 * @author qingshuang
 *
 */
public class HighArray {
    private long[] a;
    private int nElems;
    public HighArray(int max){//构造函数
    	a=new long[max];
    	nElems=0;
    }
    public boolean find(long searchKey){
    	int j;
    	for(j=0;j<nElems;j++)
    		if(a[j]==searchKey)
    			break;//退出循环
    	if(j==nElems)//没有找到
    		return false;
    	else//找到了
    		return true;
    }
    //插入
    public void insert(long value){
    	a[nElems]=value;
    	nElems++;//数据递增
    }
    //删除
    public boolean delete(long value){
    	int j;
    	for(j=0;j<nElems;j++)
    		if(a[j]==value)break;
    	if(j==nElems)//没有找到
    		return false;
    	else{
    		for(int k=j;k<nElems;k++)
    			a[k]=a[k+1];
    		nElems--;
    		return true;
    	}
    }
    //查看所有
    public void display(){
    	for (int j = 0; j < nElems; j++)
			System.out.print(a[j] + " ");
		System.out.println();
    }
}

测试类

package JavaApp_Array;

/**
 * 面向对象的高级数组类实例测试
 * 
 * @author qingshuang
 * 
 */
public class HighArrayApp {
	public static void main(String[] args) {
		int maxSize = 100;
		HighArray arr;
		arr = new HighArray(maxSize);
		arr.insert(77);
		arr.insert(99);
		arr.insert(44);
		arr.insert(55);
		arr.insert(22);
		arr.insert(88);
		arr.insert(11);
		arr.insert(00);
		arr.insert(66);
		arr.insert(33);

		arr.display();
		
		//查找
		int searchKey = 35;
		if (arr.find(searchKey))
			System.out.println("找到了" + searchKey);
		else
			System.out.println("没有找到" + searchKey);
			
		//删除	
	  arr.delete(00);
	  arr.delete(55);
	  arr.delete(99);
	  
	  arr.display();
	}

}
相关文章
相关标签/搜索