直接來看代碼:
1、遍歷
注意獲取listIterator迭代器之後,必須調用next()方法,纔算進入到list的第一個元素。代碼中 iter,next(),就是爲了讓迭代器只向list的第一個元素。所以,可以理解成,直接獲取迭代器後,迭代器的對象指向的是一個head節點,它的下一個纔是開始遍歷的元素。
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> staff = new LinkedList<>();
staff.add("zhuwei");
staff.add("xuezhangbin");
staff.add("taozhiwei");
ListIterator<String> iter = staff.listIterator();
iter.next(); //這個是必須的,不然會報錯
//遍歷List元素
System.out.println("遍歷List中元素:");
for(String str : staff)
System.out.println(str+" ");
}
}
輸出
遍歷List中元素:
zhuwei
xuezhangbin
taozhiwei
如下,通過iter.next方法,可以遍歷數組的元素,此時通過set方法,可以修改迭代器只向的對象的元素。
下面的代碼,通過兩次next()方法,讓iter只向“2”,然後通過set方法修改。
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> staff = new LinkedList<>();
staff.add("1");
staff.add("2");
staff.add("3");
ListIterator<String> iter = staff.listIterator();
iter.next();
iter.next();
iter.set("new data");
//遍歷List元素
System.out.println("遍歷List中元素:");
for(String str : staff)
System.out.println(str+" ");
}
}
結果:
遍歷List中元素:
1
new data
3
3.previous()方法
下面通過previous方法,加深一下理解
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> staff = new LinkedList<>();
staff.add("1");
staff.add("2");
staff.add("3");
ListIterator<String> iter = staff.listIterator();
iter.next();
iter.next();
String we = iter.previous();
System.out.println(we+" ");
//遍歷List元素
System.out.println("遍歷List中元素:");
for(String str : staff)
System.out.println(str+" ");
}
}
結果
2
遍歷List中元素:
1
2
3