summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/esodata/SimpleStack.java
diff options
context:
space:
mode:
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.java49
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();
+ }
}