1 public class GenericStack<E> { 2 private java.util.ArrayList<E> list = new java.util.ArrayList<>(); 3 4 public int getSize() { 5 return list.size(); 6 } 7 8 public E peek() { 9 return list.get(getSize() - 1); 10 } 11 12 public void push(E o) { 13 list.add(o); 14 } 15 16 public E pop() { 17 E o = list.get(getSize() - 1); 18 list.remove(getSize() - 1); 19 return o; 20 } 21 22 public boolean isEmpty() { 23 return list.isEmpty(); 24 } 25 26 @Override 27 public String toString() { 28 return "stack: " + list.toString(); 29 } 30 }