乙個能夠進行增刪改查的陣列的構建(資料結構01)

2022-07-02 09:09:08 字數 3919 閱讀 9586

所需要的引數

陣列的容量capacity,陣列中所存元素的個數size

構造陣列的步驟

首先對於這個陣列,先對其進行變數的定義以及新增構造方法

public class array01

//初始化陣列構造方法02

public array01()

}

接下來我們要寫獲取陣列中所儲存的元素的數量的方法getsize(),只需要返回size即可

public int getsize()
獲取陣列的容量capacity的方法getcapacity(),其所需要返回的也是capacity

public int getcapacity()
判斷陣列是否為空:isempty()

public boolean isempty()
接下來考慮在陣列中任意位置新增乙個元素:首先要考慮所輸入的索引是否符合要求(在0~size-1之間),再考慮陣列中是否有空位能夠用於元素的新增,沒有的話就要擴容。在對index位新增元素之前,先將index及其之後的元素均向後移動一位,再將所需要新增的元素賦值給index位

public void addelement(int index, e e) 

data[index] = e;

size++;

}

之後考慮在陣列元素的末尾和開頭新增乙個元素,直接呼叫上面的addelement()方法

//在陣列元素末尾新增乙個元素

public void addlast(e e)

//在陣列元素的開頭新增乙個新元素

public void addfirst(e e)

獲取index索引處元素的方法getindex(),首先依然要判斷index是否是合法的資料

public e getindex(int index) 

return data[index];

}

修改index處的索引changeindex(int index e e)

//修改index索引處的元素

public void changeindex(int index, e e)

data[index] = e;

}

判斷陣列中是否存在某個元素的方法contain()和獲取某個元素的索引的方法find(e e)

//判斷陣列中是否存在某個元素的方法

public boolean contain(e e)

}return false;

}//獲取某個元素的索引

public int find(e e)

}return -1;

}

對於乙個陣列,我們為了讓其更加的合理利用計算即的資源,對陣列的容量進行動態的調整resize(int new capacity)

public void resize(int newcapacity) 

//把指標指向data

data = newdata;

}

對於刪除元素,我們仿照之前新增元素,先要判斷索引是否有效,之後考慮如果陣列元素個數太少,也要調整陣列的容量,刪除元素即將index之後的元素(不含index位)向前移一位

public e remove(int index) 

e num = data[index];

for (int i = index + 1; i <= size - 1; i++)

data[size - 1] = null;

size--;

//完成刪除操作後再決定是否需要縮小

if (size < data.length / 4 && data.length / 2 != 0)

return num;

}

刪除第乙個元素以及最後乙個元素或者刪除陣列中的某個具體的元素

//刪除第乙個元素

public e removefirst()

//刪除最後乙個元素

public e removelast()

//在陣列中刪除某個元素

public void removeelement(e e) else

}

動態陣列的tostring()方法:

@override

public string tostring()

}return res.tostring();

}

總的**:

package demo03;

public class array01

//初始化陣列構造方法02

public array01()

//獲取陣列大小

public int getsize()

//獲取陣列容量

public int getcapacity()

//判斷陣列是否為空

public boolean isempty()

//對陣列中任意位置新增乙個元素

public void addelement(int index, e e)

data[index] = e;

size++;

}//在陣列元素末尾新增乙個元素

public void addlast(e e)

//在陣列元素的開頭新增乙個新元素

public void addfirst(e e)

// capacity = data.length;

//獲取index索引處的元素

public e getindex(int index)

return data[index];

}//修改index索引處的元素

public void changeindex(int index, e e)

data[index] = e;

}//判斷陣列中是否存在某個元素的方法

public boolean contain(e e)

}return false;

}//獲取某個元素的索引

public int find(e e)

}return -1;

}//在陣列中刪除指定索引的元素

public e remove(int index)

e num = data[index];

for (int i = index + 1; i <= size - 1; i++)

data[size - 1] = null;

size--;

//完成刪除操作後再決定是否需要縮小

if (size < data.length / 4 && data.length / 2 != 0)

return num;

}//刪除第乙個元素

public e removefirst()

//刪除最後乙個元素

public e removelast()

//在陣列中刪除某個元素

public void removeelement(e e) else

}//對陣列擴容或者縮小的方法,其內涵是要建立乙個新的兩倍長的陣列

public void resize(int newcapacity)

//把指標指向data

data = newdata;

}@override

public string tostring()

}return res.tostring();

}}

陣列的增刪改查

陣列不可刪,如何實現刪除,就需要利用陣列遍歷時的特性 陣列遍歷如果最後乙個索引內容為空,那麼遍歷就不會顯示出來,利用這一特性,我們可以實現視覺上的刪除,實際陣列長度沒有改變,具體如下 實現思路 當前要刪除的元素對應的索引如果後面還有元素,就要把後面的元素集體下標向前移.陣列縮容 flights ar...

JQuery 陣列的增刪改查

首先說明一下js中物件型別 js函式物件與原型 typeof 用來判定目標是什麼型別。陣列下標,index是從 0開始的。測試陣列如下 var arry 0,1 number陣列 var arry1 2 3 string 陣列 var arry2 2 3 true string和boolean 陣列...

陣列的增刪改查操作

新增 push 預設新增至陣列最後 unshift 向陣列開頭新增乙個或多個元素,並返回新的陣列長度 刪除 shift 刪除第一條資料 pop 刪除最後一條資料 splice 起始下標,結束下標不包括自己 刪除中間的某條資料 替換 splice 起始下標,刪除多少項,替換的新資料 例子 arr5.s...