1. 程式人生 > >回爐篇3—資料結構(2)之陣列

回爐篇3—資料結構(2)之陣列

陣列

概念

簡單說,是裝同一型別元素的集合。 裝強調是一個容器,同一型別元素是說必須型別相同,這裡先不考慮Object型別。

定義格式

a.資料型別[ ] 陣列名
b.資料型別 陣列名[ ]

陣列的初始化

開闢記憶體空間,併為陣列中的每個元素賦予初始值。

a.動態初始化 :只給長度,系統給初始值。
例如:int[ ] a=new int[3];
只給出長度即可,由系統給每個元素賦值。

b.靜態初始化 :給出初始化值,由系統決定長度。
例如:int[ ] a=new int[ ]{1,2,3 ,…};
int[ ] b={1,2,3,… };
方法二是方法一的簡化版,只用給出每個元素的初始值,由系統決定長度。

陣列的遍歷

for(int i=0;x<5;x++){
迴圈內容
}

陣列程式碼思路

    public class Array{
        	//定義陣列
        	private int [ ] array;
        	//實際長度
        	private int elems;
        	//最大長度
        	private int length;
    	
    	//預設建構函式
    	public MyArray(){
    		elems = 0;
    		length = 10;
    		array = new
int[ length ]; } //建構函式 public MyArray(int length){ elems = 0; this.length=length; array = new int[ length ]; } //獲取有效長度 public int getSize(){ return elems; } //遍歷顯示元素 public void display(){ for(int i=0;i<elems;i++){ System.
out.printn("array["+i+"]="+array[i]); } } //新增元素 public boolean add(int value){ if(elems== length){ return false; }else{ array[elems]=value; elems++; } return true; } //根據下標獲取元素 public int get(int i){ if(i<0 || i>elems){ System.out.printn("訪問下標越界"); }else{ rerturn array[i]; } } //查詢元素 public int find(int search){ int i ; for(i = 0 ; i < elems ;i++){ if(intArray[i] == search){ break; } } if(i == elems){ return -1; } return i; } //刪除元素 public boolean delete(int value){ int k=find(value); if(k==-1){ return false; }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 i = find(oldValue); if(i == -1){ System.out.println("需要修改的資料不存在"); return false; }else{ intArray[i] = newValue; return true; } } }

References

Java資料結構和演算法(二)——陣列