2015-10-22 170 views
0

该程序的最后部分应该是在生菜和鸡肉项目之间添加酱菜项目,但每当我运行它时,它都会将其添加到列表的末尾。我不知道为什么。这是我输出它的方式的问题吗?我真的不知道为什么会发生这种情况。请帮忙!将项目添加到java链接列表时遇到问题

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

您的列表与迭代器是分开的,因为迭代器的状态不会反映在列表本身中。用迭代器添加一些东西,use the add method of the iterator

+0

啊,那是我混乱的根源!非常感谢你! – Runic

0

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

您应该使用:myLinedList.add(3,"pickles")它“生菜”和“鸡”

可以使用迭代器add方法将它添加任何你想去的地方之间增加。 http://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html#add(E)

+0

这也是一个很好的方法来做到这一点!感谢大家对这些非常好的回应!程序的其余部分应该很简单。 – Runic

相关问题