枚舉與迭代器
Java中有許多數據結構充當集合,如向量、哈希表和實現Java集合框架的類(即HashMap、HashSet、ArrayList、TreeSet、TreeMap、LinkedList、LinkedHashMap和LinkedHashSet)。在Java中有無數的元素迭代到各個對象。Java提供了兩個接口來簡化這項任務。枚舉和迭代器是java.util文件提供通過一組項枚舉序列或對象的功能的包。jdk1.0中引入了枚舉器,jdk1.2中引入的迭代器實際上重複了枚舉器的功能(在集合框架中)。
什麼是枚舉?
枚舉是Java中的一個公共接口,在JDK1.0中引入,它提供通過元素序列進行枚舉的能力。它在下面找到java.util文件包裹。當枚舉接口由對象實現時,該對象可以生成一系列元素。枚舉接口有兩個方法。hasMoreElements()方法將測試此枚舉是否包含更多元素,nextElement()將返回序列中的下一個元素(如果至少還有一個元素)。換句話說,通過連續調用nextElement(),程序員可以訪問序列中的各個元素。例如,要使用枚舉器打印Vector v1中的所有元素,可以使用以下代碼片段。
枚舉e=v1.elements();
While(e.ha**oreelements()){
System.out.println(e.nextElement());
}
也可以使用SequenceOr枚舉流來定義input對象的輸入流。
什麼是迭代器?
迭代器是Java.util文件包,它允許迭代實現集合框架的collecti***對象的元素(如ArrayList、LinkedList等)。這是jdk1.2中引入的,並取代了Java集合框架中的枚舉器。迭代器有三種方法。方法hasNext()測試集合中是否還有剩餘元素,next()方法返回序列中的下一個元素。remove()方法可用於從基礎集合中移除當前元素。例如,要使用迭代器打印Vector v1中的所有元素,可以使用以下代碼片段。
迭代器i=v1.elements();
While(i.hasNext()){
System.out.println(e.next());
}
枚舉和迭代器的區別是什麼?