带迭代器的链表



每个人。我必须用某些配料做一个三明治,并且需要在链表的一些元素之间迭代以插入某些浇头。在代码的最后两部分,我需要一些帮助,在鸡肉和番茄之间插入培根。出于某种原因,培根出现在盐和面包之间的最后。如有任何帮助,我们将不胜感激。谢谢你抽出时间。

/*
 Date: 03/27/2016
 Purpose: Demonstrate Use and Knowledge of LinkedList and Iterator. You CAN'T use an index number for inserting elements into
 linked list. You must only use the list iterator. Submit one java file only. 
*/
import java.util.List;
import java.util.LinkedList;
import java.util.ListIterator;
public class LinkedListDemo {
    public static void main(String[] args) 
  {
    List<String> myLinkedList = new LinkedList<String>();
    String strOutput="";
    //BUILD THE SANDWICH
    myLinkedList.add("Bread1");
    myLinkedList.add("mustard");
    myLinkedList.add("lettuce");
    myLinkedList.add("chicken");
    myLinkedList.add("tomato");
    myLinkedList.add("Bread2");
    ListIterator<String> lit = myLinkedList.listIterator();
    while(lit.hasNext()) 
    {
      strOutput += (lit.next().toString() + ",") ;
    }
   strOutput +=("You have reached the end of the sandwich.n");

   //SHOW THE CURRENT SANDWICH IN REVERSE USING "PREVIOUS()" METHOD
    while(lit.hasPrevious())
    {
        strOutput += (lit.previous().toString() + ",");
    }
    strOutput +=("You have reached the end of the sandwich.n");

    //ADD PICKLES BETWEEN LETTUCE AND CHICKEN
    while(lit.hasNext())
    {
        if(lit.next().toString().equals("lettuce"))
        {
            lit.add("pickles");
            break;
        }
    }
    while(lit.hasPrevious())
    {
        lit.previous();
    }
    while(lit.hasNext()) 
    {
      strOutput += (lit.next().toString() + ",") ;
    }
   strOutput +=("You have reached the end of the sandwich.n");

   //ADD CHEESE BETWEEN TOMATO AND BREAD2
   while(lit.hasPrevious())
   {
       if(lit.previous().toString().equals("Bread2"))
       {
          lit.add("cheese");
          break;
       }
   }
   while(lit.hasPrevious())
   {
       lit.previous();
   }
   while(lit.hasNext())
   {
       strOutput += (lit.next().toString() + ",");
   }
   strOutput += ("You have the reached the end of the sandwich.n");

    //ADD SALT BETWEEN CHEESE AND BREAD2
   while(lit.hasPrevious())
   {
       if(lit.previous().toString().equals("Bread2"))
       {
          lit.add("salt");
          break;
       }
   }
   while(lit.hasPrevious())
    {
       lit.previous();
    }
   while(lit.hasNext())
    {
       strOutput += (lit.next().toString() + ",");
    }
    strOutput += ("You have the reached the end of the sandwich.n");

   //GO BACKWARDS AND INSERT BACON BETWEEN CHICKEN AND TOMATO
    while(lit.hasPrevious())    
    {
        if(lit.previous().toString().equals("chicken"));
        {
            lit.add("bacon");
            break;
        }
    }
    while(lit.hasPrevious())
    {
        lit.previous();
    }
    while(lit.hasNext())
    {
        strOutput += (lit.next().toString() + ",");
    }
    strOutput += ("You have the reached the end of the sandwich.n");

    //SHOW FINAL SANDWICH IN FORWARD ORDER
    javax.swing.JOptionPane.showMessageDialog(null, strOutput);
    System.exit(0);
  }
}

您有一个打字错误:

    if(lit.previous().toString().equals("chicken")); // <-- semi-colon
    {
        lit.add("bacon");
        break;
    }

编辑:

分号提前关闭if语句。这意味着无论if语句如何,lit.add("bacon");始终处于运行状态。

相关内容

  • 没有找到相关文章

最新更新