链表迭代器删除
LinkedList iterator remove
我有一个关于链表迭代器的问题
如果我使用 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|
在接下来的 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);
答案是
[Mary , Robert , Sue ]
我们如何删除以前的!我们是否删除右边的元素?
因为我认为删除总是向后而不是向前
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 顶部描述的元素之间。
我有一个关于链表迭代器的问题
如果我使用 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|
在接下来的 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);
答案是
[Mary , Robert , Sue ]
我们如何删除以前的!我们是否删除右边的元素?
因为我认为删除总是向后而不是向前
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 顶部描述的元素之间。