問題描述
我希望能夠使用 ListIterator
將元素插入到 ArrayList<String>
,但不知何故,即使在閱讀了與 add 方法相關的文檔后,我還是感到困惑ListIterator
類,如果我做這樣的事情
I want to be able to insert elements to the ArrayList<String>
using ListIterator
, but somehow I am confused even after reading the documentation related to the add method of the ListIterator
class, if I do something like this
for(int i = 0 ; i < list.size() ; ++i)
listIterator.add( list.get(i) );
這段代碼片段對我的列表迭代器做了什么,它將列表迭代器移動到哪里?
What does this code snippet do to my list iterator, where does it move the list iterator?
當我運行以下代碼時,我得到的結果是Hi"-:
When I run the following code I get the result as "Hi" -:
import java.util.ArrayList;
import java.util.ListIterator;
public class ListIter {
public static void main(String[] args) {
String[] s = {"Hi", "I", "am", "Ankit"};
ArrayList<String> list = new ArrayList<>();
ListIterator<String> listIterator = list.listIterator();
for (int i = 0; i < s.length; ++i) {
listIterator.add(s[i]);
}
while (listIterator.hasPrevious()) {
listIterator.previous();
}
System.out.println(listIterator.next());
}
}
請問這個輸出是怎么產生的?
Kindly tell how is this output being generated?
推薦答案
你沒有正確使用迭代器.使用迭代器的正確方法是使用迭代器本身而不是索引來遍歷列表.
You are not using iterator properly. The correct way using iterators is traverse the list with the iterator itself rather than by index.
ListIterator<SomeObject> listIterator = list.listIterator();
while(listIterator.hasNext()){
SomeObject o = listIterator.next();
listIterator.add(new SomeObject());
}
閱讀 ListIterator#添加()
一個簡單的例子:
public static void main(String args []){
List<String> list= new ArrayList<String>();
list.add("hi");
list.add("whats up");
list.add("how are you");
list.add("bye");
ListIterator<String> iterator = list.listIterator();
int i=0;
while(iterator.hasNext()){
iterator.next();
iterator.add(Integer.toString(i++));
}
System.out.println(list);
//output: [hi, 0, whats up, 1, how are you, 2, bye, 3]
}
}
這篇關于List Iterator 的 add() 方法對迭代器做了什么?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!