上面一篇文章對(duì)我們的數(shù)組類(lèi)進(jìn)行add方法的操作骚揍,現(xiàn)在我們看看其刪除,修改啰挪,查詢(xún)的操作
1.查詢(xún)
/**
* 獲取index的元素
* @param index 索引
* @return
*/
public int get(int index){
if(index < 0 || index >= size){
throw new IllegalArgumentException("error index");
}
//data進(jìn)行隱藏信不,用戶(hù)只能用data[index]的值而獲取不到這個(gè)數(shù)組data
//好處,對(duì)用戶(hù)傳來(lái)的index進(jìn)行判斷
return data[index];
}
只要返回對(duì)應(yīng)的index值即可亡呵,因此查詢(xún)效率特別快
2.修改
/**
* 修改index處元素
* @param index 索引
* @param e 元素
*/
public void set(int index, int e){
if(index < 0 || index >= size){
throw new IllegalArgumentException("error index");
}
data[index] = e;
}
只要對(duì)應(yīng)index賦值即可完成修改抽活,因此修改的效率特別快
3.刪除
/**
* 刪除指定index的元素
* @param index 索引
* @return 刪除的了元素,給用戶(hù)所用
*/
public int remove(int index){
if(index < 0 || index >= size){
throw new IllegalArgumentException("error index");
}
//刪除的元素 ret
int ret = data[index];
for (int i = index + 1; i <size ; i++){
data[i - 1] = data[i];
}
size --;
return ret;
}
這里的刪除操作也就是從 index + 1到size -1 內(nèi) 所有的值都往前賦值以為即可
4.數(shù)組動(dòng)態(tài)擴(kuò)容
/**
* 數(shù)組擴(kuò)容
* @param newCapacity 擴(kuò)容的容量
*/
private void resize(int newCapacity){
E[] newData = (E[])new Object[newCapacity];
//遍歷原來(lái)數(shù)組 將值賦值給新數(shù)組
for(int i = 0 ; i < size; i++){
newData[i] = data[i];
}
//將新數(shù)組賦值給data
data = newData;
}