2016-05-02 4 views
0

私は以下のメソッドをJavaで書いています。名前のスキャナ入力テキストファイルを読むつもりですが、現時点ではファイルから名前を1つだけ取り出して表示します。テキストファイルからリンクリストを印刷する:出力は1つの名前を出力します - Java

public class AssassinManager { 

private static class AssassinNode { 
    private static String player; 
    private static String killer; 
    private AssassinNode next; 
    private AssassinNode(String name){ 
     AssassinNode.player = name; 
     AssassinNode.killer = null; 
     this.next = null; 
    } 
}// End of AssassinNode 

private AssassinNode killring; // the head of the kill ring linked list - first link 
private AssassinNode graveyard; // the head of the graveyard linked list - second link 

/* AssasssinManager Constructor */ 
public AssassinManager(ArrayList<String> players){ 
    if (players == null || players.isEmpty()){ throw new IllegalArgumentException("Error: ArryList is null/empty!"); } 
    AssassinNode node = killring = new AssassinNode(players.get(0)); // create first node - for the killring 
    for (int i = 1; i < players.size(); i++){ // Add a new node at the end of each killing 
     node.next = new AssassinNode(players.get(i)); 
     node = node.next; 
    } 
    System.out.println(players.size()); 
} // End of AssassinNode Constructor - Done 

/* Prints the names of the people in the kill ring */ 
public void printKillRing() { 
    if(killring == null){ 
     return; // break out of printKillRing method when list is null 
    } 
    AssassinNode node = killring; 
    do { 
     if (node.next == null) { 
      System.out.println(node.player + " is stlaking " + node.player); 
     } else 
      System.out.println(node.player + "-->"); 
     node = node.next; 
    } while (node != null); 
} // End of printKillRing 

出力: ケリー - >ケリーは - >ケリーはケリー

意図した出力をストーキングされています ケリー - >ジェイコブ - >ロン

+0

から静的なキーワードを削除? AssasinNode? – Troncador

+0

これには多くのコンテキストがありません。 'AssassinNode'のソースは非常に便利です。 – shmosel

+0

@Troncadorコメントの残りの部分を – Asteri

答えて

0

にAssassinNodeクラスを変更し、

private static class AssassinNode { 
    private String player; 
    private String killer; 
    private AssassinNode next; 

    private AssassinNode(String name){ 
     AssassinNode.player = name; 
     AssassinNode.killer = null; 
     this.next = null; 
    } 
}// End of 

は、あなたが任意のライブラリを使用しないプレイヤーキラー

+0

それはうまくいった!ありがとうございました!! xx – Asteri

+0

ようこそ。答えを受け入れてください。 – Kajal

0

だから、明らかにAssassinNode名前 "player"の静的フィールドとインスタンスフィールドの両方を持っていますか?そうでなければ、それをインスタンスに変更する必要があります(フィールド宣言からstaticキーワードを削除するだけです)。いったんあなたはそれを固定したら、あなたはあなたに何を与えるのでしょうか?

public void printKillRing(){ 
 
     if(killring == null){ 
 
      return; // break out of printKillRing method when list is null 
 
     } 
 
     AssassinNode node = killring; 
 
     do { 
 
      if (node.next == null){ 
 
       System.out.println(node.player); 
 
      } else 
 
       System.out.print(node.player + "-->"); // print the current element 
 
      node = node.next; 
 
      
 
     } while (node != null); 
 
    } // End of printKillRing

+0

に追加しました。私はこの提案を試みました。出力は私の以前の機能と同じでした。 – Asteri

関連する問題