集合迭代器 listIterator()

直接來看代碼:

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   


2、set方法

如下,通過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   



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章