private Item[] a = (Item[]) new Object[1];
private int N = 0;
public boolean isEmpty() {
return N == 0;
}
public int size() {
return N;
}
private void resize(int max) {
Item[] temp = (Item[]) new Object[max];
for (int i = 0; i < N; i++) {
temp[i] = a[i];
a = temp;
}
}
public void push(Item item) {
//判斷當數組元素計數變量N與數組的長度相等的時候 那么將數組的長度擴充2倍
if (N == a.length) {
resize(2 * a.length);
}
a[N++] = item;
}
public Item pop() {
Item item = a[N--];
a[N] = null;
if (N > 0 && N == a.length / 4) {
resize(a.length / 2);
}
return item;
}有朋友可以幫忙解釋一下么 N > 0 && N == a.length / 4 這個條件從何而來?
關于《算法》中JAVA動態調整數組的問題
吃雞游戲
2018-07-08 11:06:19