无法将项目添加到java链接列表

时间:2015-10-22 23:15:43

标签: java linked-list

这个程序的最后一部分应该是在生菜和鸡肉之间添加泡菜项目,但每当我运行它时,它会将它添加到列表的末尾。我不知道为什么。这是我输出它的方式的问题吗?老实说,我不知道为什么会这样。请帮忙!

public class LinkedListDemo 
{
  public static void main(String[] args) 
  {

List<String> myLinkedList = new LinkedList<String>();

String strOutput="";

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() + ", ");
}
strOutput +=("end...\n");    


while(lit.hasPrevious()) 
{
  strOutput +=(lit.previous() + ", ");
}
strOutput +=("end...\n");


lit.next();
lit.next();
lit.next();

myLinkedList.add("pickles");

ListIterator<String> lit2 = myLinkedList.listIterator();

while(lit2.hasNext()) 
{
  strOutput +=(lit2.next() + ", ");
}
strOutput +=("end...\n");    

javax.swing.JOptionPane.showMessageDialog(null, strOutput);
System.exit(0);
  }

} 

2 个答案:

答案 0 :(得分:2)

在迭代器的状态未反映在列表本身的意义上,您的列表与迭代器是分开的。使用迭代器添加内容use the add method of the iterator

答案 1 :(得分:0)

myLinkedList.add("pickles");将始终将其添加到最后。迭代器的位置无关紧要。他们都是独立的。

您应该使用:myLinedList.add(3,"pickles")在“生菜”和“鸡肉”之间添加

您可以使用迭代器add方法将其添加到任何您想要的位置。 http://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html#add(E)