Я работаю над программой, которая использует алгоритм Дейкстры и записывает результаты в текстовый файл. Бита кода у меня есть, что запись в файл выглядит следующим образом:Запись в файл из метода void
try (PrintWriter pr = new PrintWriter(filename + "Out.txt")) {
pr.println("Adjacency Matrix: " + (endTime - startTime) + " ms ");
pr.println("Min-Heap: ");
pr.println("Fibonnaci Heap:");
pr.println("Dijkstra Adjacency Matrix");
pr.println(g.printPath(END));
}
} catch (Exception e) {
}
У меня нет никаких проблем с этим кусочком коды для линии g.printPath (END), за исключением. Ошибка, которую я получаю, это «тип недействительности здесь не разрешен». Я полностью понимаю, что это значит. Это происходит потому, что метод printPath недействителен. Это выглядит следующим образом:
public void printPath(String end) {
if (!graph.containsKey(end)) {
System.err.printf("End vertex is not contained within graph \"%s\"\n", end);
return;
}
graph.get(end).printPath();
System.out.println();
}
Поскольку мне нужен доступ к переменной она будет печатать, я попытался изменить его, чтобы иметь тип возвращаемого значения, что я мог бы написать в текстовый файл. То, что я придумал это было:
public String printPath(String end) {
if (!graph.containsKey(end)) {
System.err.printf("End vertex is not contained within graph \"%s\"\n", end);
return null;
}
graph.get(end).printPath();
System.out.println();
return graph.get(end).printPath();
}
Это опять-таки есть ошибки, так как метод имеет тип строки, но graph.get (конец) .printPath() является ничтожным (метод прибудете также аннулируются). Я попытался вернуть другие переменные, такие как graph и graph.get (end), но они не возвращают фактические переменные внутри графика. Я знаю, что graph.get (end) .printPath() выводит правильные значения, которые я хочу. Я просто пытаюсь найти способ их хранения. Есть ли простой способ записать это в текстовый файл, который я просматриваю без необходимости возвращаться и редактировать все мои методы, чтобы сделать их не пустыми? Благодаря!
Что такое возвращение экземпляра graph.get (конец)? – additionster
get() - метод в Map.java и graph.get (end) не печатает никакого значения, метод, я считаю, просто получает значения в пути от начала до конечного узла. – user3068177