2017-08-08 63 views
0

次のコードでは、ListItemクラスにaddNewItemというメソッドがあります。このメソッドは、ユーザーからlinkedListとStringを取得して、あらかじめ定義されたリンクリスト;アルファベット順。このクラスでは、挿入された値をlinkedListに入れるためのイテレータと比較が定義されています。問題は、このアプリケーションを実行すると、挿入された値がlinkedListに表示されないということです。値がlinkedListに追加されることをどうすれば保証するのですか?java- who iteratorの助けを借りてlinkdedListに文字列を追加する

クラス:

​​

メインクラス:リストは最初は空であるようaddNewItem()方法で

public class Main { 
    private static ListItem listItem = new ListItem("Jack"); 
    private static Scanner scanner = new Scanner(System.in); 
    public static void main(String[] args) { 
     listItem.addNewItem(listItem.getContent(),"Alex"); 
     listItem.addNewItem(listItem.getContent(),"Barney"); 
     listItem.moveForwards(listItem.getContent()); 
     listItem. 

} 
+0

を、あなたは自分のメインクラスのmainメソッドの完全なコードを投稿してくださいもらえますか? – Speakjava

答えて

1

while文の条件はtrueことはありません:

while (i.hasNext()) { 

したがって、メソッド呼び出しのターミネータアイテムを追加せずにテッド。

必要な場合は、while文の後に項目を追加する必要があります

boolean mustAdd = false; 
while (i.hasNext()){ 
    int comparison = i.next().compareTo(newItem); 
    if(comparison == 0){ 
     System.out.println("This item is already exist"); 
    }else if(comparison > 0){ 
     i.previous(); 
     mustAdd = true; 
    }else{ 
     mustAdd = true; 
    } 
} 
if (mustAdd){ 
    i.add(newItem); 
} 
関連する問題