} while (hasMoreResults() && catDistances.contains(cs.getCatIndex())); visited.cats.put(cs.getCatIndex(), cs.getDistance()); catDistances.put(cs.getCatIndex(), cs.getDistance()); continue; if (!pageDistances.containsKey(i) || pageDistances.get(i) > cs.getDistance()) { pageDistances.put(i, cs.getDistance()); visited.pages.put(i, cs.getDistance()); for (int i : graph.catChildren[cs.getCatIndex()]) { if (!catDistances.containsKey(i)) { double d = cs.getDistance() + graph.catCosts[i]; openCats.add(new CategoryDistance(i, graph.cats[i], d, (byte)-1)); for (int i : graph.catParents[cs.getCatIndex()]) { if (!catDistances.containsKey(i)) { double d = cs.getDistance() + graph.catCosts[i]; openCats.add(new CategoryDistance(i, graph.cats[i], d, (byte)+1));