1 public class StackOfIntegers {
2 private int[] elements;
3 private int size;
4 public static final int DEFAULT_CAPACITY = 16;
5
6
7 public StackOfIntegers() {
8 this(DEFAULT_CAPACITY);
9 }
10
11
12 public StackOfIntegers(int capacity) {
13 elements = new int[capacity];
14 }
15
16
17 public void push(int value) {
18 if (size >= elements.length) {
19 int[] temp = new int[elements.length * 2];
20 System.arraycopy(elements, 0, temp, 0, elements.length);
21 elements = temp;
22 }
23
24 elements[size++] = value;
25 }
26
27
28 public int pop() {
29 return elements[--size];
30 }
31
32
33 public int peek() {
34 return elements[size - 1];
35 }
36
37
38 public boolean isEmpty() {
39 return size == 0;
40 }
41
42
43 public int getSize() {
44 return size;
45 }
46 }