파일에서 데이터를 읽고 그래프를 구성하고 싶습니다. 저는 모든 것을했습니다. 모든 정점은 정상적으로 만들어졌지만 그래프에 추가하면 인접한 목록 (키 값이 인접한 정점의 수이고 값이 거리입니다)이 비게됩니다. 아무도 제발 내 코드의 문제점을 말해 줄 수 있습니까?그래프에 정점 추가
public class Vertex {
private int number;
private LinkedHashMap<Integer, Integer> adjacent;
public Vertex(int num) {
this.number = num;
this.adjacent = new LinkedHashMap<Integer, Integer>();
}
}
public class Graph {
private ArrayList<Vertex> vertices;
private int verticesSize = 201;
public Graph() {
Vertex initialVertex = new Vertex(0);
this.vertices = new ArrayList<Vertex>();
for(int i = 0; i < verticesSize; i++) {
vertices.add(i, initialVertex);
}
}
}
public class Test {
public static void printGraph(Graph graph) {
for(int i = 0; i < graph.getVerticesSize(); i++)
System.out.println(graph.getVertices().get(i));
}
public static void main(String[] args) throws IOException {
FileInputStream fStream = new FileInputStream("C:/Lusine/Programming/Java/dijkstraData.txt");
// Use DataInputStream to read binary NOT text.
BufferedReader bReader = new BufferedReader(new InputStreamReader(fStream));
Graph graph = new Graph();
String[] maps;
String line;
LinkedHashMap<Integer, Integer> currentMap = new LinkedHashMap<Integer, Integer>();
while((line = bReader.readLine()) != null) {
maps = line.split("\t");
int firstDigit = Integer.parseInt(maps[0]);
Vertex v = new Vertex(firstDigit);
for(int i = 1; i < maps.length; i++) {
String[] vertexDistance = maps[i].split(",");
int vertex = Integer.parseInt(vertexDistance[0]);
int distance = Integer.parseInt(vertexDistance[1]);
currentMap.put(vertex, distance);
}
v.setAdjacent(currentMap);
graph.getVertices().set(firstDigit, v);
System.out.println("\n" + firstDigit +"-th vertex is\n" + v);
currentMap.clear();
}
printGraph(graph);
}
나는 V를 인쇄 할 때, 괜찮아요,하지만 그래프를 인쇄 할 때, 모든 인접한 목록은 비어 있습니다. 뭐가 문제 야?
그래프에 추가 할 때 ... 어떻게됩니까? 문제를 설명하는 것을 잊었다 고 생각합니다. – cytinus
오, 정말! 나는 나의 질문을 편집했다. 고마워요 – user2081119