java Iterator.remove()實(shí)例方法分析
今天看到,java的NIO里面的SelectionKey,處理完key后,調(diào)用keyIterator.remove(); 對(duì)Iterator的remove()方法不是很熟悉,小測(cè)試了下,代碼如下:
List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { String str = i + ""; list.add(str); } java.util.Iterator it = list.iterator(); for (int i = 0; i < 5; i++) { System.out.println((String) it.next()); } it.remove(); System.out.println("http:////////////////////////"); it = list.iterator(); while (it.hasNext()) { System.out.println((String) it.next()); }
0
1
2
3
4
////////////////////////
0
1
2
3
5
6
7
8
9
很明顯,remove()去掉的是當(dāng)前it.next()返回的元素.到這里有個(gè)疑問(wèn),這個(gè)remove之后對(duì)下面的元素遍歷有沒(méi)有影響呢?又測(cè)試下,代碼如下:
List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { String str = i + ""; list.add(str); } java.util.Iterator it = list.iterator(); // for (int i = 0; i < 5; i++) { // System.out.println((String) it.next()); // } // it.remove(); // System.out.println("http:////////////////////////"); // it = list.iterator(); // while (it.hasNext()) { // System.out.println((String) it.next()); // // } while (it.hasNext()) { System.out.println((String) it.next()); it.remove(); }
運(yùn)行代碼如下:
0
1
2
3
4
5
6
7
8
9
remove()后,對(duì)下面的元素遍歷沒(méi)影響 .完畢!
實(shí)例擴(kuò)展:
@Test public void tt(){ List<String> list = new ArrayList<String>(); list.add( "0" ); list.add( "1" ); list.add( "2" ); list.add( "3" ); list.add( "4" ); list.add( "5" ); list.add( "6" ); list.add( "7" ); list.add( "8" ); list.add( "9" ); list.add( "10" ); list.add( "11" ); list.add( "12" ); list.add( "13" ); list.add( "14" ); list.add( "15" ); list.add( "16" ); list.add( "17" ); list.add( "18" ); list.add( "19" ); list.add( "20" ); int i = 0; Iterator<String> it = list.iterator(); while ( it.hasNext() ) { String str = it.next(); if ( i % 2 == 0 ) { System.out.println( i + "===" + str ); it.remove(); } i++; } for ( String str : list ) { System.out.println( str ); } }
到此這篇關(guān)于java Iterator.remove()實(shí)例方法分析的文章就介紹到這了,更多相關(guān)java Iterator.remove()方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java contains用法示例
- 如何解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
- 淺談Java list.remove( )方法需要注意的兩個(gè)坑
- Java中List遍歷刪除元素remove()的方法
- java 較大數(shù)據(jù)量取差集,list.removeAll性能優(yōu)化詳解
- java ArrayList.remove()的三種錯(cuò)誤用法以及六種正確用法詳解
- JAVA的LIST接口的REMOVE重載方法調(diào)用原理解析
- Java中ArrayList在foreach里remove的問(wèn)題詳析
- Java 集合的Contains和Remove方法
相關(guān)文章
SpringBoot原生組件注入實(shí)現(xiàn)兩種方式介紹
SpringBoot是Spring全家桶的成員之一,基于約定優(yōu)于配置的思想(即有約定默認(rèn)值,在不配置的情況下會(huì)使用默認(rèn)值,在配置文件下配置的話會(huì)使用配置的值)。SpringBoot是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架2022-10-10SpringBoot添加SSL證書,開啟HTTPS方式(單向認(rèn)證服務(wù)端)
這篇文章主要介紹了SpringBoot添加SSL證書,開啟HTTPS方式(單向認(rèn)證服務(wù)端),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07