我正在解决DFS问题所以我使用了ArrayList的数组。这是我的代码
ArrayList<Node> graph[] = new ArrayList[N+1];
int u, v, w;
for (int i = 1; i <=N; i++){
graph[i] = new ArrayList<Node>();
}
for(int i=0;i<N-1;i++){
u=sc.nextInt();
v=sc.nextInt();
w=sc.nextInt();
graph[u].add(new Node(v,w));
graph[v].add(new Node(u,w));
}
System.out.println(graph[1].get(0));----------(1)
对于上面的打印语句,我得到了输出Node@1db9742
。我不知道为什么我要把它拿出来。
我的意见:
1
3
1 2
1 3
2 3
Plz帮助我如何从arrayList
的数组中打印精确的输出编辑:节点类:
class Node {
static int i;
int distance;
Node(int i, int distance) {
this.i = i;
this.distance = distance;
}
}
答案 0 :(得分:0)
您必须覆盖Node类&#39;根据您的需要toString()
方法。
例如 - 如果您只想在班级的文本表示中使用距离,则可以执行类似 -
的操作class Node {
static int i;
int distance;
Node(int i, int distance) {
this.i = i;
this.distance = distance;
}
@Override
public String toString() {
return Integer.toString(distance); // Change as per your needs
}
}
更多相关内容:
答案 1 :(得分:0)
您必须覆盖toString
类的Node
方法,因此System.out.println()
方法可以使用它来显示您的期望。像这样
class Node {
static int i;
int distance;
Node(int i, int distance) {
this.i = i;
this.distance = distance;
}
@Override
public String toString() {
return "Node{" +
"i=" + i + "," +
"distance=" + distance +
'}';
}
}