private void analyzeEdges(UniversalGraph<Node, Edge> graph, int colCount) { for (Node node : graph.getNodes()) { node.conLeft = false; node.conRight = false; node.conTop = false; node.conBottom = false; node.conLeftTop = 0; node.conLeftBottom = 0; node.conRightTop = 0; node.conRightBottom = 0; } int rowCount = coordinates.size(); ArrayList<Edge> edgesList = new ArrayList<Edge>(graph.getEdges()); for (int row = 0; row < rowCount; row++) { for (int jump = 0; jump < colCount - 1; jump++) { Iterator<Edge> edges = edgesList.iterator(); while (edges.hasNext()) { Edge edge = edges.next(); if (edge.forward() && edge.sameRow(row) && edge.jump() == jump) { analyzeEdge(row, jump, edge); edges.remove(); } } edges = edgesList.iterator(); while (edges.hasNext()) { Edge edge = edges.next(); if (edge.backward() && edge.sameRow(row) && edge.jump() == jump) { analyzeEdge(row, jump, edge); edges.remove(); } } } } }