回爐篇3—資料結構(2)之陣列
阿新 • • 發佈:2018-12-25
陣列
概念
簡單說,是裝同一型別元素的集合。 裝強調是一個容器,同一型別元素是說必須型別相同,這裡先不考慮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;
}
}
}