public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Vertices: " + numVertices + " " + "Edges: {"); for (int i = 0; i < numVertices; i++) { for (int j : adjacentVertices[i]) { if (j >= i) { if (!edgeCosts.containsKey(new Edge(i, j))) { sb.append("(" + i + "," + j + "), "); } else { sb.append("(" + i + "," + j + "," + edgeCosts.get(new Edge(i, j)) + "), "); } } } } if (numEdges > 0) { sb.setLength(sb.length() - 2); // Remove trailing ", " } sb.append("}"); return sb.toString(); }