1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
// @skip-test
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.checkerframework.checker.nullness.qual.*;
public class KeyFor_DirectionsFinder {
class GeoPoint {}
class StreetSegment {}
class Graph {
public void addEdge(StreetSegment endSeg, StreetSegment beginSeg) {}
}
public void buildGraph(List<StreetSegment> segs) {
Map<GeoPoint, Set<StreetSegment>> endMap = new HashMap<>();
Map<@KeyFor("endMap") GeoPoint, Set<StreetSegment>> beginMap = new HashMap<>();
Graph graph = new Graph();
for (StreetSegment seg : segs) {
GeoPoint p1 = new GeoPoint();
if (!(beginMap.containsKey(p1))) {
endMap.put(p1, new HashSet<StreetSegment>());
beginMap.put(p1, new HashSet<StreetSegment>());
}
endMap.get(p1).add(seg);
beginMap.get(p1).add(seg);
}
for (@KeyFor("endMap") GeoPoint p : beginMap.keySet()) {
for (StreetSegment beginSeg : beginMap.get(p)) {
for (StreetSegment endSeg : endMap.get(p)) {
graph.addEdge(endSeg, beginSeg); // endSeg and beginSeg are @NonNull
}
}
}
}
}
|