激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - java中Iterator和ListIterator實例詳解

java中Iterator和ListIterator實例詳解

2021-03-04 09:42街燈下的小草 JAVA教程

這篇文章主要介紹了java中Iterator和ListIterator實例詳解,具有一定借鑒價值,需要的朋友可以參考下。

iterator和listiterator的作用范圍以及關系:

(1) iterator可以用于迭接口list的實現arraylist,linkedlist以及map等。
(2) listiterator顧名思義,就是用于迭代list實現arraylist,linkedlist。
(3) 從源碼或api文檔中可以看出,iterator為listiterator的父類。

java" id="highlighter_27228">
?
1
2
3
public interface listiterator<e> extends iterator<e> {
    // 省略......
}

在listiterator中增加了新方法。

迭代器隱式游標位置實例分析:

java中Iterator和ListIterator實例詳解

如上圖,在迭代器要迭代的集合list中有四個元素a,b,c,d,當調用xxx.iterator()或xxx.listiterator()方法時,

迭代器指向iterator_one的位置,當調用xxx.next()方法時,迭代器位置指向iterator_two位置。

迭代器指向的位置并不是正對著元素,而是在元素之間。

iterator和listiterator中的方法:

------iterator中的方法:

官方api方法概要:

java中Iterator和ListIterator實例詳解

方法分析:

hasnext():判斷集合中元素迭代器所指下一個位置是否有元素,有返回true,否則返回false

next():返回迭代器所指向位置下一個元素值。

remove():刪除迭代器通過iterator取出的值。

------listiterator中的方法:

官方api方法概要:

java中Iterator和ListIterator實例詳解

方法分析:

add(ee):在集合中插入指定元素,插入位置與最后一次操作next()或previous()方法有關。

如果最后操作的是next(),則在該next取出的元素之后插入元素,如果是previous()則在取出的元素之前插入元素。

hasnext():集合正序遍歷時,判斷隱式游標所指的下一個元素是否存在,存在返回true,否則返回false。

hasprevious():集合反向遍歷時,判斷隱式游標的上一個元素是否存在,存在返回true,否則返回false。

next():返回隱式游標所指位置下一個元素值。

nextindex():返回隱式游標所指位置下一個元素的索引值。

previous():返回隱式游標所指位置的上一個元素值。

previousindex():返回隱式游標所指上一個位置元素的索引值。

remove():從集合中刪除元素,并不是刪除所有的元素,而是刪除最后一次操作next()或previous()返回的元素,

如果next()或previous()沒有返回值,則報錯。

set(ee):從列表中將next()或previous()返回的元素替換為e,比如,next()取出為a,可以通過set將a替換為one。

實例1:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.lanhuigu.java;
import java.util.arraylist;
import java.util.list;
import java.util.listiterator;
public class listiteratorapitest {
    public static void main(string[] args) {
        list<string> list = new arraylist<string>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        // 此時,迭代器指向iterator_one位置
        listiterator<string> listiterator = list.listiterator();
        // 此時,迭代器指向iterator_two位置
        string firstelement = listiterator.next();
        // 刪除元素
        listiterator.remove();
        // 刪除next取出的元素,此時已經將a從集合中刪除
        // 添加元素
        //listiterator.previous();
        listiterator.add("e");
        // 在指向位置iterator_two之前,即為之前a的位置
        // 打印next取出的元素
        system.out.println("firstelement:" + firstelement);
        // 將指向位置重新初始化到iterator_one位置,但是a已經別刪除,添加了e
        listiterator = list.listiterator();
        while(listiterator.hasnext()) {
            system.out.println(listiterator.next());
        }
        system.out.println("--------------");
        // set 方法測試
        listiterator = list.listiterator();
        // 將e替換為eeee
        system.out.println("dddd"+listiterator.next());
        listiterator.set("eeee");
        system.out.println("---------------");
        // 將游標位置挪到首元素位置,打印元素,證明將e修改為eeee成功
        listiterator = list.listiterator();
        while(listiterator.hasnext()) {
            system.out.println(listiterator.next());
        }
    }
}

實例二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.lanhuigu.java;
import java.util.arraylist;
import java.util.iterator;
import java.util.list;
import java.util.listiterator;
public class iteratorapitest {
    public static void main(string[] args) {
        list<string> list = new arraylist<string>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        // 第一種遍歷集合的方式,直接通過循環語句(for,do-while,while)遍歷
        // for
        for (string e : list) {
            system.out.println(e);
        }
        system.out.println("------------");
        // 第二種遍歷集合的方式(iterator)
        iterator<string> iterator = list.iterator();
        while(iterator.hasnext()) {
            system.out.println(iterator.next());
        }
        system.out.println("------------");
        // 第三種遍歷集合的方式(listiterator)
        listiterator<string> listiterator = list.listiterator();
        while(listiterator.hasnext()) {
            system.out.println(listiterator.next());
        }
        system.out.println("------------");
    }
}

總結

以上就是本文關于java中iterator和listiterator實例詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/yhl_jxy/article/details/53394567

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 深夜福利视频免费观看 | 亚洲网站在线 | 精品国产精品久久 | 日本特级a一片免费观看 | 狠狠操天天射 | 国产一精品一av一免费爽爽 | 黄色片在线免费播放 | 国产精品呻吟 | 午夜久| 影视免费观看 | 99麻豆久久久国产精品免费 | 欧美黄色片免费看 | 国产日韩在线视频 | 免费黄网站在线播放 | 久久99深爱久久99精品 | 51国产偷自视频区视频小蝌蚪 | 日本欧美一区二区三区在线观看 | avav在线播放| 手机黄网www8xcn | 欧美精品第1页 | 黄视频网址 | 亚洲一区二区国产 | 免费一级毛片观看 | 精品欧美一区二区精品久久久 | av在线一区二区三区四区 | 亚洲自拍第一 | 一级黄色性感片 | 国内精品免费一区二区2001 | 国产高潮好爽好大受不了了 | 成人av一区二区免费播放 | 久草在线资源福利站 | 在线成人免费网站 | 天使萌一区二区三区免费观看 | lutube成人福利在线观看 | 欧美亚州 | 久久久成人精品 | 性少妇videosexfreexx入片 | 久久亚洲美女视频 | 91在线视频导航 | 91av在线国产 | 99久久九九爱看免费直播 |