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