日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 集合中關于Iterator和ListIterator的用法說明

瀏覽:15日期:2022-08-20 08:50:55

1.Iterator

Iterator的定義如下:

public interface Iterator<E> {}

Iterator是一個接口,它是集合的迭代器。集合可以通過Iterator去遍歷集合中的元素。Iterator提供的API接口如下:

Java 集合中關于Iterator和ListIterator的用法說明

forEachRemaining(Consumer<? super E> action):為每個剩余元素執行給定的操作,直到所有的元素都已經被處理或行動將拋出一個異常

hasNext():如果迭代器中還有元素,則返回true。

next():返回迭代器中的下一個元素

remove():刪除迭代器新返回的元素。

Java 集合中關于Iterator和ListIterator的用法說明

例子:

import java.util.*;public class TestIterator { public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); a.add('aaa'); a.add('bbb'); a.add('ccc'); System.out.println('Before iterate : ' + a); Iterator<String> it = a.iterator(); while (it.hasNext()) { String t = it.next(); if ('bbb'.equals(t)) { it.remove(); } } System.out.println('After iterate : ' + a); }}

我們可以看到:首先往一個ArrayList里裝了aaa,bbb,ccc,然后進行判斷刪除bbb,最后ArrayList里只剩 aaa,ccc。

我們來驗證一下:

Java 集合中關于Iterator和ListIterator的用法說明

注意:

(1)Iterator只能單向移動。

(2)Iterator.remove()是唯一安全的方式來在迭代過程中修改集合;如果在迭代過程中以任何其它的方式修改了基本集合將會產生未知的行為。而且每調用一次next()方法,remove()方法只能被調用一次,如果違反這個規則將拋出一個異常。

2.ListIterator

ListIterator是一個功能更加強大的, 它繼承于Iterator接口,只能用于各種List類型的訪問。可以通過調用listIterator()方法產生一個指向List開始處的ListIterator, 還可以調用listIterator(n)方法創建一個一開始就指向列表索引為n的元素處的ListIterator。

我們先來看一段關于ListIterator的描述:

Java 集合中關于Iterator和ListIterator的用法說明

ListIterator接口定義如下:

Interface ListIterator<E>{}

Java 集合中關于Iterator和ListIterator的用法說明

包含的方法有:

由以上定義我們可以推出ListIterator可以:

(1)雙向移動(向前/向后遍歷).

(2)產生相對于迭代器在列表中指向的當前位置的前一個和后一個元素的索引.

(3)可以使用set()方法替換它訪問過的最后一個元素.

(4)可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一個元素.

使用例子:

import java.util.*;public class TestListIterator{ public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); a.add('aaa'); a.add('bbb'); a.add('ccc'); System.out.println('Before iterate : ' + a); ListIterator<String> it = a.listIterator() while (it.hasNext()) { System.out.println(it.next() + ', ' + it.previousIndex() + ', ' + it.nextIndex()); } while (it.hasPrevious()) { System.out.print(it.previous() + ' '); } System.out.println(); it = a.listIterator(1);//調用listIterator(n)方法創建一個一開始就指向列表索引為n的元素處的ListIterator。 while (it.hasNext()) { String t = it.next(); System.out.println(t); if ('ccc'.equals(t)) { it.set('nnn'); } else { it.add('kkk'); } } System.out.println('After iterate : ' + a); }}

解釋:

第1行:新建一個ArrayList,命名為a;

第2行、第3行和第4行分別一次往ArrayList里添加了aaa,bbb,ccc;

第5行:輸出ArrayList里的值:aaa,bbb,ccc

第6行:調用了a的listIterator方法,并使ListIterator類型的it指向,也就是說ListIterator類型的it指向了ArrayList容器, 通過調用ArrayList的listIterator方法來進行容器內的遍歷。

第7行、8、9行,調用it的hasNext()方法進行判斷容器中是否還有元素,如果有,則輸出元素,當前元素前一個元素的索引,當前元素后一個元素的索引,

所以會輸出:

aaa,0,1

bbb,1,2

ccc,2,3

第10行,此時,it已經指向了ArrayList的最后一個元素,在這里調用了ListIterator的hasPrevious()方法,就是,開始往前遍歷(上面是往后遍歷) 在這個while循環中,會以此輸出:ccc bbb aaa。

第13行:輸出換行。

第14行:現在it應該已經再一次指向ArrayList的開頭。在這一行中,it又被用到了,同樣的用到了ArrayList的listIteror方法,這一次不同,而是it指向了listIteror的第二個元素,因為是1,第一個元素的索引是0,也就是說it指向了ArrayList里的bbb。bbb是開頭的元素。

第15行:再一次是調用了ListIterator的hasnext()方法,來判斷ArrayList里是否還有元素。

第16行:調用了it的next()方法,所謂next方法,是指找到剩下元素的第一個元素,也就是bbb,并把它賦值了String 的 t;

第17行:輸出bbb

第18行:19、20,21行,如果bbb與ccc相等則將bbb set成nnn,否則,add()來添加kkk,那么在哪里添加呢,是在next方法返回的元素之前,next方法返回的元素是ccc,也就是在bbb,和ccc之間添加kkk。現在容器中有aaa、bbb、kkk以及ccc。返回到第15行,再次以此往下執行,會進行if判斷,然后把ccc設置nnn。

第24行,最后輸出ArrayList里的元素:aaa、bbb、kkk、nnn。

我們來驗證一下:

Java 集合中關于Iterator和ListIterator的用法說明

Iterator和ListIterator區別

我們在使用List,Set的時候,為了實現對其數據的遍歷,我們經常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍歷的過程,只需要每次取出一個你想要的數據進行處理就可以了。但是在使用的時候也是有不同的。List和Set都有iterator()來取得其迭代器。

對List來說,你也可以通過listIterator()取得其迭代器,兩種迭代器在有些時候是不能通用的,Iterator和ListIterator主要區別在以下方面:

(1)ListIterator有add()方法,可以向List中添加對象,而Iterator不能

(2)ListIterator和Iterator都有hasNext()和next()方法,可以實現順序向后遍歷,但是ListIterator有hasPrevious()和previous()方法,可以實現逆向(順序向前)遍歷。Iterator就不可以。

(3)ListIterator可以定位當前的索引位置,nextIndex()和previousIndex()可以實現。Iterator沒有此功能。

(4)都可實現刪除對象,但是ListIterator可以實現對象的修改,set()方法可以實現。Iierator僅能遍歷,不能修改。

因為ListIterator的這些功能,可以實現對LinkedList等List數據結構的操作。其實,數組對象也可以用迭代器來實現。

以上這篇Java 集合中關于Iterator和ListIterator的用法說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美网站在线观看| 国产欧美一区二区三区国产幕精品 | 欧美日韩三区| 麻豆精品少妇| 麻豆国产精品777777在线| 欧美日韩一区二区三区四区在线观看 | 国产+成+人+亚洲欧洲在线| 日本91福利区| 欧美偷窥清纯综合图区| 日韩动漫一区| 丝袜美腿亚洲一区| 日韩三级精品| 日韩高清成人在线| 日韩福利视频一区| 国产精品久久久网站| 国产精品亚洲欧美日韩一区在线| 国产精品xvideos88| 麻豆91精品视频| 私拍精品福利视频在线一区| 激情综合自拍| 日本久久一区| 国产aⅴ精品一区二区三区久久| 久久中文欧美| 亚洲福利一区| 日韩一区二区三区在线看| 国产日韩一区二区三免费高清| 国内精品伊人| 99亚洲视频| 你懂的亚洲视频| 女人天堂亚洲aⅴ在线观看| 亚洲精品进入| 欧美片第1页| 日本欧美久久久久免费播放网| 国产欧美一区二区三区精品酒店| 亚洲一区二区动漫| 久久香蕉精品香蕉| 中文字幕免费一区二区| 青青久久av| 久久不见久久见免费视频7| 亚洲手机视频| 欧美国产另类| 只有精品亚洲| 欧美日韩国产高清电影| 国产乱子精品一区二区在线观看 | 播放一区二区| 蜜桃精品视频| 无码日韩精品一区二区免费| 日韩免费高清| 国产精品三级| 日本欧美大码aⅴ在线播放| 日韩一级网站| 九九色在线视频| 国产一区国产二区国产三区 | 国产欧美日本| 日韩精品免费一区二区夜夜嗨| 97se综合| 秋霞影视一区二区三区| 国产成人免费| 另类综合日韩欧美亚洲| 国产精品调教视频| 日韩一区二区三免费高清在线观看| 在线亚洲免费| 视频一区中文字幕| 免费日韩av| 中文字幕一区二区三区日韩精品 | 欧美.日韩.国产.一区.二区 | 欧美日韩一区二区三区在线电影| 日韩中文字幕区一区有砖一区| 国产一区日韩一区| 欧美精品一区二区久久| 日韩一区精品视频| 伊人久久大香伊蕉在人线观看热v| 免费人成黄页网站在线一区二区| 中文精品视频| 国产精品中文字幕制服诱惑| 色婷婷色综合| 亚洲深深色噜噜狠狠爱网站| 综合在线一区| 国产精品色在线网站| 免费在线欧美黄色| 日本在线高清| 中文日韩欧美| 日韩av二区在线播放| 电影91久久久| 久久伦理在线| 三级亚洲高清视频| 国产精品最新| 久久久精品午夜少妇| 亚洲一区网站| 亚洲人成在线影院| 精品一区二区三区亚洲| 久久精品伊人| 亚洲免费观看| 国产精品视频一区视频二区| 岛国av在线网站| 亚洲成人免费| 日本视频一区二区| 92国产精品| 欧美亚洲人成在线| 日韩欧美一区免费| 日av在线不卡| 亚洲精品.com| 日韩精品国产欧美| 美女亚洲一区| 四虎成人av| 国产亚洲久久| 精品国产不卡一区二区| 亚洲综合色婷婷在线观看| 久久国产毛片| 国产精品二区不卡| 欧美一级全黄| 久久国产精品亚洲77777| 91一区二区| 欧美一区自拍| 日韩影院精彩在线| 在线国产一区| 日韩综合在线| 麻豆精品新av中文字幕| 亚洲乱码久久| 久久一二三区| 在线视频日韩| 麻豆理论在线观看| 精品视频黄色| 精品一区二区三区视频在线播放| 中文字幕成人| 日韩中文一区二区| 在线国产日韩| 蜜桃一区二区三区在线观看| 亚洲欧美日本国产专区一区| av在线日韩| 日韩在线第七页| 欧美激情另类| 三上悠亚国产精品一区二区三区 | 亚洲大全视频| 99国产精品| 黄色亚洲大片免费在线观看| 国产成人精品亚洲日本在线观看| 精品国产乱码久久久久久1区2匹| 国产精品亚洲四区在线观看| 国产精品丝袜在线播放| 国产精品一区毛片| 欧美激情五月| 亚洲精品国产嫩草在线观看 | 日韩精品视频中文字幕| 国产精品jk白丝蜜臀av小说| 麻豆精品新av中文字幕| 精品欧美日韩精品| 国产精品腿扒开做爽爽爽挤奶网站| 日韩视频一区| 国产欧美日韩精品一区二区三区| 精品精品99| 亚洲毛片网站| 精品在线网站观看| 成人国产精品一区二区免费麻豆| 欧美综合另类| 国产精品草草| 丝袜诱惑制服诱惑色一区在线观看| 亚洲精品三级| 国产欧美69| 精品1区2区3区4区| 麻豆一区二区99久久久久| 一本色道精品久久一区二区三区| 91免费精品国偷自产在线在线| 精品一区在线| 精品九九久久| 日韩精品2区| 久久精品国产精品亚洲毛片| 亚洲+小说+欧美+激情+另类| 婷婷亚洲五月| 日韩伦理福利| 久久精品国产免费| 人人爱人人干婷婷丁香亚洲| 黄色不卡一区| 精品一区二区三区中文字幕视频 | 免费在线亚洲欧美| 欧美在线首页| 日韩中文字幕| 久热re这里精品视频在线6| 久久精品免费看| 91精品国产一区二区在线观看| 亚洲激情偷拍| 91久久视频| 亚洲大片在线| 亚洲一卡久久| 日韩免费精品| 久久国产婷婷国产香蕉| 国产精品一区免费在线| 日韩毛片视频| 最近国产精品视频| 国产91在线精品| 国产精品tv| 日韩毛片网站| 视频一区在线视频| 先锋亚洲精品| 一区视频在线| 蜜桃成人av| 亚洲激情久久| 激情婷婷久久| 亚洲一区二区毛片| 亚洲图片久久|