Java 带迭代器的链表

Java 带迭代器的链表,java,list,linked-list,iterator,listiterator,Java,List,Linked List,Iterator,Listiterator,各位。我必须用某些配料做一个三明治,并且需要在链表的某些元素之间迭代以插入某些配料。在代码的最后两部分,我需要一些帮助,我必须在鸡肉和西红柿之间插入培根。出于某种原因,咸肉出现在盐和面包之间的最末端2。任何帮助都将不胜感激。谢谢你抽出时间 /* Date: 03/27/2016 Purpose: Demonstrate Use and Knowledge of LinkedList and Iterator. You CAN'T use an index number for inserti

各位。我必须用某些配料做一个三明治,并且需要在链表的某些元素之间迭代以插入某些配料。在代码的最后两部分,我需要一些帮助,我必须在鸡肉和西红柿之间插入培根。出于某种原因,咸肉出现在盐和面包之间的最末端2。任何帮助都将不胜感激。谢谢你抽出时间

/*
 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);
  }

}
/*
日期:2016年3月27日
目的:演示LinkedList和迭代器的使用和知识。不能使用索引号将元素插入到
链表。只能使用列表迭代器。仅提交一个java文件。
*/
导入java.util.List;
导入java.util.LinkedList;
导入java.util.ListIterator;
公共类LinkedListDemo{
公共静态void main(字符串[]args)
{
List myLinkedList=新建LinkedList();
字符串strOutput=“”;
//做三明治
myLinkedList.add(“Bread1”);
添加(“芥末”);
添加(“莴苣”);
添加(“鸡肉”);
添加(“番茄”);
myLinkedList.add(“Bread2”);
ListIterator lit=myLinkedList.ListIterator();
while(lit.hasNext())
{
strOutput+=(lit.next().toString()+“,”);
}
strOutput+=(“您已到达三明治的末端。\n”);
//使用“PREVIOUS()”方法反向显示当前三明治
while(lit.hasPrevious())
{
strOutput+=(lit.previous().toString()+“,”);
}
strOutput+=(“您已到达三明治的末端。\n”);
//在生菜和鸡肉之间加入泡菜
while(lit.hasNext())
{
if(lit.next().toString().equals(“莴苣”))
{
点燃。添加(“泡菜”);
打破
}
}
while(lit.hasPrevious())
{
lit.previous();
}
while(lit.hasNext())
{
strOutput+=(lit.next().toString()+“,”);
}
strOutput+=(“您已到达三明治的末端。\n”);
//在番茄和面包之间加入奶酪2
while(lit.hasPrevious())
{
if(lit.previous().toString().equals(“Bread2”))
{
点燃。加入(“奶酪”);
打破
}
}
while(lit.hasPrevious())
{
lit.previous();
}
while(lit.hasNext())
{
strOutput+=(lit.next().toString()+“,”);
}
strOutput+=(“您已经到达三明治的末端。\n”);
//在奶酪和面包之间加盐2
while(lit.hasPrevious())
{
if(lit.previous().toString().equals(“Bread2”))
{
点燃。加入(“盐”);
打破
}
}
while(lit.hasPrevious())
{
lit.previous();
}
while(lit.hasNext())
{
strOutput+=(lit.next().toString()+“,”);
}
strOutput+=(“您已经到达三明治的末端。\n”);
//向后走,在鸡肉和西红柿之间插入培根
while(lit.hasPrevious())
{
如果(lit.previous().toString().equals(“chicken”);
{
点燃。添加(“培根”);
打破
}
}
while(lit.hasPrevious())
{
lit.previous();
}
while(lit.hasNext())
{
strOutput+=(lit.next().toString()+“,”);
}
strOutput+=(“您已经到达三明治的末端。\n”);
//按顺序显示最后的三明治
javax.swing.JOptionPane.showMessageDialog(null,strOutput);
系统出口(0);
}
}
您有一个输入错误:

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

if(lit.previous().toString().equals(“chicken”);//唯一的问题是我不能使用索引。你看过我链接到的特定解决方案了吗?我看过了,但似乎没有弄明白你需要做
lit。在
add
之前做上一个
。总是愚蠢的事情让我着迷。非常感谢。对于最后一部分,如何在消息对话框中打印语句?我不知道为什么消息对话框没有显示。我还使用了javax.swing。在JOptionPane.showMessageDialog()的同一行中,上面是导入(import javax.swing.*;