2017-01-01 16 views
-1

DFSの問題を解決しているので、ArrayListの配列を使用しました。ここでは上記のprint文のために私のコードarrayListをJavaの文字列として出力する方法

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) 

私はこれを取得していますなぜ分からないの出力[email protected] .Iを得ています。 私の入力:Nodeクラス:

1 
3 
1 2 
1 3 
2 3 

PlzをArrayListに

編集の配列から正確な出力を印刷する方法で私を助けてあなたはNodeクラスをオーバーライドする必要があります

class Node { 
    static int i; 
    int distance; 

    Node(int i, int distance) { 
     this.i = i; 
     this.distance = distance; 
    } 
} 
+3

Objectクラスのデフォルトの継承されたメソッド 'toString()'は、あなたのノードをStringに変換するために使用されています。 Nodeクラスの 'toString()'メソッドをオーバーライドします。 – GurV

+0

@ GurwinderSingh:来るべき質問が届きました... –

+0

ありがとう@GurwinderSinghしかし、私はまだ同じ出力を持っています[Node @ 1db9742] –

答えて

0

あなたのニーズに応じて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 
    } 

} 

より - あなたのクラスのテキスト表現でのみ距離をしたい場合は、あなたのような何かを行うことができます。

0

あなたはそうSystem.out.println()方法は、あなたが期待しているものを表示するためにそれを使用することができ、NodeクラスのtoStringメソッドをオーバーライドする必要があります。このように

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

オハイオ州ans srry @ GurwinderSingh –

+0

あなたはあなたの問題をよりよく解決する一つの答えだけを受け入れるべきです。他の答えが良いと思うなら、それは問題ありません。代わりに、あなたはすべての正解をupvoteすることができます(20の評判を得た後)。ハッピーコーディング:) –

関連する問題