gpt4 book ai didi

java - 链表迭代器删除

转载 作者:行者123 更新时间:2023-11-29 05:05:35 25 4
gpt4 key购买 nike

我有一个关于链表迭代器的问题

如果我使用 next 、 previous 和 remove 方法

例如:

name.add("Alvin")
name.add("Keven")
name.add("Jack")

ListIterator<String> iterator = name.listIteraot(); //|AKJ

iterator.next(); // A|KJ
iterator.next(); // AK|J

iterator.add("Nina") // AKN|J

iterator.next(); // AKNJ|

iterator.remove(); // AKN|

在 next 和 remove 方法中,我们删除迭代器指针之前的元素,如示例所示

放置

我把前面的搞混了然后去掉例如

myLList.add("Mary"); 
myLList.add("John");
myLList.add("Sue");

ListIterator<String> iterator = myLList.iterator

itorator.next();
itorator.next();
itorator.add("Robert");
itorator.pervios();
itorator.pervios();
itorator.remove();

System.out.println(myLList);

答案是[玛丽,罗伯特,苏]

我们如何删除以前的!我们是否删除右边的元素?

因为我认为删除总是向后而不是向前

最佳答案

my question is how do we remove after using previous , do we remove the element after the iterator pointer or before?

来自 ListIterator#remove 的文档:

Removes from the list the last element that was returned by next() or previous() (optional operation). This call can only be made once per call to next or previous. It can be made only if add(E) has not been called after the last call to next or previous.

换句话说,您不会在指针之后或之前删除。文档指定 remove 方法与指针的位置无关,并将删除最后一次调用 next/previous 返回的对象。

但是,ListIterator 中仍然存在一个指针,它位于 ListIterator 顶部所述的元素之间 documentation .

关于java - 链表迭代器删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30488275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com