3 4 MyArrayList 類的實現

2022-08-02 17:12:11 字數 1588 閱讀 4650

這節提供乙個便於使用的 myarraylist 泛型類的實現,這裡不檢測可能使得迭代器無效的結構上的修改,也不檢測非法的迭代器 remove 方法。

myarraylist 將保持基礎陣列,陣列的容量,以及儲存在myarraylist 中的當前項數。

myarraylist 將提供一種機制以改變基礎陣列的容量。通過獲得乙個新陣列,將老陣列拷貝到新陣列中來改變陣列的容量,允許虛擬機器**老陣列。

myarraylist 將提供 get 和 set 的實現。

myarraylist 將提供基本的例程,如 size 、isempty 和 clear,它們是典型的單行程式;還提供 remove,以及兩種不同版本的 add。如果陣列大小和容量相同,那麼這兩個 add 例程將增加容量。

myarraylist 將提供乙個實現 iterator 介面的類。這個類將儲存迭代序列中的下一項的下標,並提供 next、hasnext 和 remove 等方法的實現。myarraylist 的迭代器方法直接返回實現 iterator 介面的該類的新構造的例項。

public class myarraylistimplements iterable

public void clear()

private void doclear()

public int size()

public boolean isempty()

public void trimtosize()

public e get(int idx)

return theitems[idx];

}public e set(int idx, e newval)

e old = theitems[idx];

theitems[idx] = newval;

return old;

}public void ensurecapacity(int newcapacity)

e old = theitems;

theitems = (e) new object[newcapacity];

for (int i = 0; i < thesize; i++)

}public boolean add(e x)

public void add(int idx, e x)

for (int i = thesize; i > idx; i--)

theitems[idx] = x;

thesize++;

}public e remove(int idx)

thesize--;

return removeditem;

}public iteratoriterator()

private class arraylistiterator implements iterator

public e next()

return theitems[current++];

}public void remove()

}}

arraylistiterator 是 myarraylist 的內部類,可以直接訪問 myarraylist 的 private 例項

順序表 MyArrayList的實現

實現的myarraylist實為順序表結構,其中要實現iterable時必須在內部實現iterator,即為該錶的迭代器.1 public class myarraylistimplements iterable 6private class myiterator implements iterat...

C 學習筆記34 類的static成員

靜態成員 不是任意物件的組成部分,但由給定類的全體物件所共享的資料成員或函式成員。靜態成員是與類關聯的物件,而不是像普通的成員那樣與類的物件相關聯。靜態成員可以是資料成員,或成員函式。靜態成員遵循正常的共有 私有訪問規則。通過關鍵字static宣告靜態成員。靜態資料成員必須在類定義體的外部定義,且只...

Codeup 墓地 3 4 問題 D 日期類

編寫乙個日期類,要求按 x xx xx 的格式輸出日期,實現加一天的操作。輸入第一行表示測試用例的個數m,接下來m行每行有3個用空格隔開的整數,分別表示年月日。測試資料不會有閏年。輸出m行。按 x xx xx的格式輸出,表示輸入日期的後一天的日期。2 1999 10 20 2001 1 311999...