Java Iterator 使用
?學而時習之,溫故而知新.
?
?迭代器是一種模式、詳細可見其設計模式,可以使得序列類型的數據結構的遍歷行為與被遍歷的對象分離,即我們無需關心該序列的底層結構是什么樣子的。只要拿到這個對象,使用迭代器就可以遍歷這個對象的內部。
(1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。
(2) 使用next()獲得序列中的下一個元素。
(3) 使用hasNext()檢查序列中是否還有元素。
(4) 使用remove()將迭代器新返回的元素刪除。
使用方法對比
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List list = new ArrayList();//實例化集合對象list.add("A"); //添加數據list.add("B");list.add("C");list.add("D");//迭代器用于while循環Iterator iterator = list.iterator();//創建迭代器while (iterator.hasNext()) { //判斷是否有下一個元素String str = (String) iterator.next(); //獲取集合元素System.out.println(str);}//迭代器用于for循環for (Iterator iterator1 = list.iterator(); iterator1.hasNext(); ) {String str = (String) iterator1.next();System.out.println(str);}//forfor (int i=0;i<list.size();i++){System.out.println(list.get(i));}//foreachfor (Object str:list){System.out.println(str);}}
}
用法的區分:
for一般可以用于簡單的順序集合,并且可以預測集合的大小;
foreach可以遍歷任何集合或者數組,但是使用者需要知道遍歷元素的類型。
iterator不需要知道元素類型和元素大小,通過hasnext()判斷是否遍歷完所有元素
for循環與迭代器的對比:
*?效率上各有各的優勢:
>?ArrayList對隨機訪問比較快,而for循環中使用的get()方法,采用的即是隨機訪問的方法,
? ? ? ? ? ? ? ? ?因此在ArrayList里for循環快。
>?LinkedList則是順序訪問比較快,Iterator中的next()方法采用的是順序訪問方法,
? ? ? ? ? ? ? ? ?因此在LinkedList里使用Iterator較快。
>?主要還是要依據集合的數據結構不同的判斷。
總結
以上是生活随笔為你收集整理的Java Iterator 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大体积混凝土的定义,如何套用定额??
- 下一篇: 微信小程序修改标题