实现代码
package stack_array;
import java.util.Iterator;
public class stackarray implements Iterable {
private T[] eles;
private int N;
public stackarray(int capacity) {
eles = (T[]) new Object[capacity];
N = 0;
}
public boolean isEmpty() {
return N == 0;
}
public int length() {
return N;
}
public void push(T t) {
for (int i = N; i > 0; i--) {
eles[i] = eles[i - 1];
}
eles[0] = t;
N++;
}
public T pop() {
T n = eles[0];
for (int i = 0; i < N - 1; i++) {
eles[i] = eles[i + 1];
}
return n;
}
public Iterator iterator() {
return new SIterator();
}
private class SIterator implements Iterator {
int curr;
public SIterator() {
this.curr = 0;
}
public boolean hasNext() {
return curr < N;
}
public T next() {
return eles[curr++];
}
}
}
测试代码
package stack_array;
public class stackarraytest {
public static void main(String[] args) {
stackarray squence = new stackarray(20);
squence.push(“a”);
squence.push(“b”);
squence.push(“c”);
squence.length();
for (String i : squence) {
System.out.println(i);
}
System.out.println(squence.pop());
}
}