日期:2014-05-16 浏览次数:20485 次
?? ?数组只能存放,单一类型,限定长度大小的。我们可以通过下表来进行访问指定元素。现在用面向对象的方式使用数组模拟数据库,进行查找,修改,删除,增加的典型操作。
?? ?现在我们自定义一个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.这样就基本实现增删改查的操作了。