在使用Java集合的時候,都需要使用Iterator。但是java集合中還有一個迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的時候可以使用。這兩種迭代器有什么區(qū)別呢?下面我們詳細分析。這里有一點需要明確的時候,迭代器指向的位置是元素之前的位置。
目前創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、岳陽網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
首先看一下Iterator和ListIterator迭代器的方法有哪些。
Iterator迭代器包含的方法有:
ListIterator迭代器包含的方法有:
相同點
不同點
使用范圍不同,Iterator可以應(yīng)用于所有的集合,Set、List和Map和這些集合的子類型。而ListIterator只能用于List及其子類型。
ListIterator有add方法,可以向List中添加對象,而Iterator不能。
ListIterator和Iterator都有hasNext()和next()方法,可以實現(xiàn)順序向后遍歷,但是ListIterator有hasPrevious()和previous()方法,可以實現(xiàn)逆向(順序向前)遍歷。Iterator不可以。
ListIterator可以定位當(dāng)前索引的位置,nextIndex()和previousIndex()可以實現(xiàn)。Iterator沒有此功能。
ArrayList<String> stringArrayList1 = new ArrayList<String>();
ArrayList<String> stringArrayList2 = new ArrayList<String>();
stringArrayList1.add("ok");
stringArrayList1.add("hello");
stringArrayList1.add("world");
stringArrayList2.add("好的");
stringArrayList2.add("你好");
stringArrayList2.add("世界");
stringArrayList1.addAll(stringArrayList2);
ListIterator<String> iterator = stringArrayList1.listIterator();
System.out.println("從前往后輸出:");
while (iterator.hasNext()){
System.out.println("next="+iterator.next());
}
System.out.println("\r\n從后往前輸出:");
while (iterator.hasPrevious()){
System.out.println("previous="+iterator.previous());
}注意:一定要先進行由前向后輸出,之后才能進行由后向前的輸出。

分享題目:JAVA后端面試必知——ListIterator和Iterator的異同
網(wǎng)站URL:http://chinadenli.net/article20/gsgdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、App開發(fā)、品牌網(wǎng)站設(shè)計、域名注冊、網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)