如何在java中将arrayList打印为字符串

时间:2017-01-01 14:47:05

标签: java arraylist

我正在解决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;
    }
}

2 个答案:

答案 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 +
                '}';
    }
}