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 这个条件从何而来?
尚方宝剑之说
aluckdog