Java數據結構(一)--數組

      所有的程序員都說數據結構和算法十分重要,是程序的靈魂。如果把一個可以解決某個特定問題的程序比作人的身體,那麼數據結構和算法就是這具身體的靈魂、大腦。好的數據結構好比現實生活中的天才,那麼不好的數據結構和算法就是現實生活中的腦殘。下面我記錄了我學習Java數據結構的第一節<數組>,並手動編寫了數組的基本操作。

       ①、如何插入一條新的數據項

  ②、如何尋找某一特定的數據項

  ③、如何刪除某一特定的數據項

  ④、如何迭代的訪問各個數據項,以便進行顯示或其他操作

  而我們知道了數組的簡單用法,現在用類的思想封裝一個數組,實現上面的四個基本功能:

  ps:假設操作人是不會添加重複元素的,這裏沒有考慮重複元素,如果添加重複元素了,後面的查找,刪除,修改等操作只會對第一次出現的元素有效。


package Array;

public class MyArray {
	//定義一個數組
	private int [] intArray;
	//定義數組的實際長度
	private int elems;
	//定義數組的最大長度
	private int length;
	
	//默認構造一個長度爲100的數組
	public MyArray(){
		elems = 0;
		length = 100;
		intArray = new int[length];
	}
	//構造函數,初始化一個長度爲length的數組
	public MyArray(int length){
		elems = 0;
		this.length = length;
		intArray = new int[length];
	}
	
	//獲得數組的有效長度
	public int getSize(){
		return elems;
	}
	
	//遍歷顯示元素
	public void display(){
		for(int i = 0; i < elems; i++){
			System.out.print(intArray[i]);
		}
		System.out.println();
	}
	
	//添加元素
	public boolean add(int value){
		if(elems == length){
			return false;
		}else{
			intArray[elems] = value;
			elems++;
		}
		return true;
	}
	
	//根據下標獲取元素
	public int get(int i){
		if(i<0 || i>elems-1){
			System.out.println("訪問下標越界");
			return -1;
		}
		else{
			return intArray[i];
		}
	}
	
	//查找元素
	public int find(int searchValue){
		int i;
		for(i = 0; i < elems; i++){
			if(intArray[i] == searchValue){
				break;
			}
		}
		if(i == elems){
			return -1;
		}
		return i;
	}
	
	//刪除元素
	public boolean delete(int value){
		int k = find(value);
		if(-1 == k){
			System.out.println("要刪除的數不存在");
		}else{
			if(k == elems-1){
				elems--;
			}else{
				for(int i = k; i<elems-1; i++){
					intArray[i] = intArray[i+1];
				}
				elems--;
			}
		}
		return true;
	}
	
	//修改數據
	public boolean modify(int oldValue,int newValue){
		int k = find(oldValue);
		if(-1 == k){
			System.out.println("要修改的數不存在");
			return false;
		}else{
			intArray[k] = newValue;
		}
		return true;
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章