列表迭代器add方法是如何工作的?使用下面的代码,为什么当我执行“List Iterator forward”循环时,字符串"TREEEEEEEEEEEES“没有打印出来?任何帮助都将不胜感激。谢谢
忽略:
看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的文章大部分都是代码;
public class PracticeClass5
{
@Test
public void LearningXMLSuite()
// Method 1
List<String> myarraylist1 = new ArrayList<String>();
myarraylist1.add("Oranges");
myarraylist1.add("Apples");
myarraylist1.add("Strawberries");
myarraylist1.add("Watermelon");
myarraylist1.add("Cantalope");
myarraylist1.add("Berries");
myarraylist1.add(6, "banannas");
for (int i=0; i< myarraylist1.size(); i++)
{
System.out.println("Fruits " + i +" = " +myarraylist1.get(i));
}
System.out.println();
ListIterator<String> myitr1 = myarraylist1.listIterator();
myitr1.add("TREEEEEEEEEEEES");
for (int i=0; i< myarraylist1.size(); i++)
{
System.out.println("After adding " + i +" = " +myarraylist1.get(i));
}
System.out.println();
/// does not work
while (myitr1.hasNext())
{
System.out.println("List Iterator forward " +myitr1.next());
}
System.out.println();
while (myitr1.hasPrevious())
{
System.out.println("List Iterator backward " +myitr1.previous());
}
System.out.println();
}
}
**Output**
Fruits 0 = Oranges
Fruits 1 = Apples
Fruits 2 = Strawberries
Fruits 3 = Watermelon
Fruits 4 = Cantaloupe
Fruits 5 = Berries
Fruits 6 = bananas
After adding 0 = TREEEEEEEEEEEES
After adding 1 = Oranges
After adding 2 = Apples
After adding 3 = Strawberries
After adding 4 = Watermelon
After adding 5 = Cantalope
After adding 6 = Berries
After adding 7 = bananas
List Iterator forward Oranges
List Iterator forward Apples
List Iterator forward Strawberries
List Iterator forward Watermelon
List Iterator forward Cantaloupe
List Iterator forward Berries
List Iterator forward bananas
List Iterator backward bananas
List Iterator backward Berries
List Iterator backward Cantaloupe
List Iterator backward Watermelon
List Iterator backward Strawberries
List Iterator backward Apples
List Iterator backward Oranges
List Iterator backward TREEEEEEEEEEEES 发布于 2020-05-28 05:55:00
因为迭代器在添加元素时不会向前移动。你有一个列表:
"Oranges" "Apples" "Strawberries" ...当你调用myarraylist1.listIterator()时,迭代器被创建了,它的'current‘(光标)位置被设置为恰好在"Oranges"之前,如下所示:
"Oranges" "Apples" "Strawberries" ...
//Iterator points here ^ 然后使用myitr1.add("TREEEEEEEEEEEES")将一个项目添加到前面,但是迭代器的光标不会移动,因此看起来是这样的:
"TREEEEEEEEEEEES" "Oranges" "Apples" "Strawberries" ...
//Iterator points here ^ 如果在while (myitr1.hasNext())循环之前调用myitr1.previous(),它将返回一个元素,并指向您想要的位置。
https://stackoverflow.com/questions/62052913
复制相似问题