diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java b/BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java index ec01280..1de06a6 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java +++ b/BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java @@ -6,7 +6,7 @@ import java.util.LinkedList; /** * Simple implementation of a stack. * - * @param T + * @param <T> * The datatype stored in the stack. * @author Ben Culkin */ @@ -29,14 +29,14 @@ public class SimpleStack<T> extends Stack<T> { @Override public T pop() { if(backing.isEmpty()) throw new StackUnderflowException(); - + return backing.pop(); } @Override public T top() { if(backing.isEmpty()) throw new StackUnderflowException(); - + return backing.peek(); } @@ -49,14 +49,45 @@ public class SimpleStack<T> extends Stack<T> { public boolean empty() { return backing.size() == 0; } - - @Override - public String toString() { - return backing.toString(); - } - + @SuppressWarnings("unchecked") public T[] toArray() { return (T[]) backing.toArray(); } + + @Override + public int hashCode() { + final int prime = 31; + + int result = 1; + result = prime * result + ((backing == null) ? 0 : backing.hashCode()); + + return result; + } + + @Override + public boolean equals(Object obj) { + if(this == obj) return true; + if(obj == null) return false; + if(getClass() != obj.getClass()) return false; + + SimpleStack<?> other = (SimpleStack<?>) obj; + + if(backing == null) { + if(other.backing != null) return false; + } else if(!backing.equals(other.backing)) return false; + + return true; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + + builder.append("SimpleStack [backing="); + builder.append(backing); + builder.append("]"); + + return builder.toString(); + } } |
