diff --git a/src/cse332/interfaces/worklists/WorkList.java b/src/cse332/interfaces/worklists/WorkList.java index 0add88bba812dc0e1a8a6a1f62b6c9401af141cf..48c3837030443283b34fa5c15946f15cb52cd545 100644 --- a/src/cse332/interfaces/worklists/WorkList.java +++ b/src/cse332/interfaces/worklists/WorkList.java @@ -89,22 +89,23 @@ public abstract class WorkList<E> implements Iterable<E> { } /** - * Note that the toString() method of a WorkList _consumes_ the WorkList. - * This can lead to odd and unpredictable behavior. - * - * @postcondition hasWork() is false + * Returns some basic information about this particular worklist. + * + * Calling this method does not consume the worklist. + * + * @return a string representation of this worklist */ @Override public String toString() { - StringBuilder result = new StringBuilder(); - result.append("["); - while (this.hasWork()) { - result.append(this.next().toString() + ", "); - } - if (result.length() > 1) { - result.replace(result.length() - 2, result.length(), ""); + if (this.hasWork()) { + return String.format("%s(size = %d, peek = %s)", + this.getClass().getSimpleName(), + this.size(), + this.peek()); + } else { + return String.format("%s(size = %d)", + this.getClass().getSimpleName(), + this.size()); } - result.append("]"); - return result.toString(); } }