日期:2014-05-16  浏览次数:20410 次

用数组模拟一个数据库,进行增删查改的操作

?? ?数组只能存放,单一类型,限定长度大小的。我们可以通过下表来进行访问指定元素。现在用面向对象的方式使用数组模拟数据库,进行查找,修改,删除,增加的典型操作。

?? ?现在我们自定义一个MyArray类,有两个构造方法,一个是自定义数组的长度,一个是默认长度。

?? ?public class MyArray {

	/**
	 * 数组的当前下标
	 */
	private int index;
	/**
	 * 数组
	 */
	private int[] array;
	
	/**
	 * 默认构造方法,自定义数组长度为10
	 */
	public MyArray() {
		index = 0;
		array = new int[10];
	}
	
	/**
	 * 带数组长度的构造方法
	 * @param length 数组长度
	 */
	public MyArray(int length) {
		index = 0;
		array = new int[length];
	}
}

?

?? 增加的操作

?

???public void insertElement(int value) {

         //进行逐一的增加
         array[index] = value;
        //下标也跟着跌加
	index++;
	//当下标的长度与数组长度相等时,开辟数组的一倍长度进行扩展数组的容量

       if(index == array.length) {
               //临时数组		

		int[] tempArray = new int[array.length + array.length];
		for(int i = 0; i < array.length; i++) {
			tempArray[i] = array[i];
		}
		array = new int[array.length + array.length];
		array = tempArray;
	}
} 

?

?

?? ?查找指定元素是否存在的操作

?? ?public boolean findElement(int value) {

                //元素存在的标志
		boolean isExist = false;
		for(int i = 0; i < array.length; i++) {
			if(array[i] == value) {
				isExist = true;
				break;
			}
		}
		return isExist;
}

?

?

???删除的操作

???public void deleteElement(int value) {

		//首先查找元素是否存在
		boolean isExist = findElement(value);
		if(isExist) {
			for(int i = 0; i < array.length; i++) {
				if(array[i] == value) {
					array[i] = 0;
				}
			}
		}
}

?

?? ?修改的操作

?? ?public void modifyElement(int oldValue, int newValue) {

		//首先判断修改的元素是否存在
		boolean isExist = findElement(oldValue);
		if(isExist) {
			for(int i = 0; i < array.length; i++) {
				if(array[i] == oldValue) {
                                        //把旧的值修改成新的值
					array[i] = newValue;
				}
			}
		}
}

?

?

???显示所有的数据

???public void display() {

		for(int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
		}
}

?

?? ?在此。我们写一个测试类进行测试

?? ?public class TestArray {

	public static void main(String[] args) {
		MyArray myArray = new MyArray();
		myArray.insertElement(10);
		myArray.insertElement(20);
		myArray.insertElement(8);
		myArray.modifyElement(20, 5);
		myArray.deleteElement(5);
		myArray.display();
	}
}

?

?????输出的结果:10 0 8 0 0 0 0 0 0 0.

?? ? OK.这样就基本实现增删改查的操作了。