Java中Iterator迭代器的next()方法的新手易錯點。
關於Iterator主要有三個方法:hasNext()、next()、remove()
hasNext:沒有指標下移操作,只是判斷是否存在下一個元素;
next:指標下移,返回該指標所指向的元素;
remove:刪除當前指標所指向的元素,一般和next方法一起用,這時候的作用就是刪除next方法返回的元素。
迭代器一般用於遍歷set、map等無序的儲存模型,用hasnext來判斷是否遍歷完成,再用next來呼叫所取元素的一些屬性來達成遍歷它的目的,然後初學者在這裡就會經常犯在if(hasnext())的方法體裡面呼叫兩次next()方法的錯誤,初學者以為呼叫的是同一元素,實際上算是呼叫了兩次next(),導致指標向後移動兩次。所以涉及到使用元素的多個屬性的遍歷時,用foreach就好。
相關文章
- 【java】【集合】迭代器IteratorJava
- Java基礎Iterator迭代器Java
- Java 集合(2)之 Iterator 迭代器Java
- Iterator迭代器
- 迭代器 iterator
- 迭代器模式(Iterator)模式
- PHP迭代器Iterator介面PHP
- STL之迭代器(iterator)
- Iterator與Iterable(迭代器與可迭代)
- JAVA設計模式之 迭代器模式【Iterator Pattern】Java設計模式
- C++ STL迭代器(iterator)C++
- python黑魔法---迭代器(iterator)Python
- Python學習迭代器(Iterator)Python
- Java——深入瞭解Java中的迭代器Java
- Iterator(迭代器)的用法及其背後機制的探究
- 設計模式的征途—21.迭代器(Iterator)模式設計模式
- ??Java開發者的Python快速進修指南:迭代器(Iterator)與生成器JavaPython
- 【ES6基礎】迭代器(iterator)
- java版 SpringCloud分散式微服務雲架構之Java Iterator(迭代器)JavaSpringGCCloud分散式微服務架構
- c/c++ 標準庫 迭代器(iterator)C++
- 設計模式系列之迭代器模式(Iterator Pattern)——遍歷聚合物件中的元素設計模式物件
- 設計模式--迭代器模式Iterator(行為型)設計模式
- C#設計模式系列:迭代器模式(Iterator)C#設計模式
- CSS中關於定位及BFC中的易錯點CSS
- Java中在迭代時新增元素的3種方法Java
- 三十四、java版 SpringCloud分散式微服務雲架構之Java Iterator(迭代器)JavaSpringGCCloud分散式微服務架構
- java運算子易錯點總結Java
- java布林型別易錯點Java型別
- 關於java輸入易錯點Java
- Java Colllection的迭代器兩種失敗模式的優缺點Java模式
- JavaScript淺談之迭代器(Iterator) 和for-of迴圈JavaScript
- 集合------集合框架Collection/Iterator迭代器/增強for迴圈框架
- 切圖崽的自我修養-[ES6] 迭代器Iterator淺析
- python中的迭代器Python
- java迭代器Java
- 不用for迭代 --手工訪問迭代器中的元素.
- Java容器類原始碼分析之Iterator與ListIterator迭代器(基於JDK8)Java原始碼JDK
- 一文徹底搞懂Python可迭代(Iterable)、迭代器(Iterator)和生成器(Generator)的概念Python