列舉(enumeration)和迭代器(iterator)的區別

Java中有許多資料結構充當集合,如向量、雜湊表和實現Java集合框架的類(即HashMap、HashSet、ArrayList、TreeSet、TreeMap、LinkedList、LinkedHashMap和LinkedHashSet)。在Java中有無數的元素迭代到各個物件。Java提供了兩個介面來簡化這項任務。列舉和迭代器是java.util檔案提供透過一組項列舉序列或物件的功能的包。jd...

枚舉與迭代器

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());

}

枚舉和迭代器的區別是什麼?

  • 發表於 2020-10-26 10:47
  • 閱讀 ( 14 )
  • 分類:科技

你可能感興趣的文章

c(c)和目標c(objective c)的區別

...資料型別,如int、float、double、char等,還有陣列、結構、列舉和聯合。必須在C中宣告變數資料型別。未宣告的變數會導致錯誤。常量可以使用“c***t”關鍵字或#define preprocessor來定義。C有四個儲存類,它們解釋了變數或函式的生...

  • 發佈於 2020-10-16 06:52
  • 閲讀 ( 62 )

打字稿(typescript)和es6型(es6)的區別

...許多資料型別。其中一些是字串、數字、布林值、陣列、列舉、元組、泛型。TypeScript的一個主要優點是它有助於構建基於類的物件。大多數程式語言如java、C++支援面向物件程式設計。因為TypeScript是基於類的,所以它能夠支援OOP...

  • 發佈於 2020-10-17 01:32
  • 閲讀 ( 39 )

打破(break)和在java中繼續(continue in java)的區別

...複一個語句或一組語句。迴圈用於對同一組指令進行多次迭代。迴圈的一些例子是while迴圈、do while迴圈和for迴圈。在while迴圈中,首先計算測試表達式。如果為true,則執行while迴圈中的語句。最後,再次對測試表達式求值。如果...

  • 發佈於 2020-10-19 05:44
  • 閲讀 ( 66 )

樹集(treeset)和容器(hashset)的區別

...素新增到該物件中。資料**順序是A,D,A,B,C,D。使用迭代器,儲存的值被列印到螢幕上。輸出是A、B、C、D。即使有兩個A字母和兩個D字母,輸出也會分別顯示一個A和一個D。因此,樹集儲存獨特的元素。沒有特定的**順序,但...

  • 發佈於 2020-10-19 06:21
  • 閲讀 ( 57 )

for迴圈(for loop)和foreach迴圈(foreach loop)的區別

...語句塊。一種常見的控制結構是迴路控制。for迴圈是用於迭代的控制流結構,允許程式碼重複執行。它包含初始化、測試表達式和更新表示式。要重複的語句包含在大括號中。foreach迴圈被改進為一個迴圈。它增加了程式碼的可...

  • 發佈於 2020-10-19 07:26
  • 閲讀 ( 85 )

值型別(value type)和參考型別(reference type)的區別

...可以建立值型別。兩種這樣的使用者定義值型別是結構和列舉。結構包含不同型別的資料。它類似於一個類。“struct”關鍵字用於宣告結構變數。結構示例如下。 僱員結構{ 公共國際機場; 公共字串名稱; } 列舉用於提高程式...

  • 發佈於 2020-10-19 07:42
  • 閲讀 ( 60 )

遞迴(recursion)和迭代(iteration)的區別

關鍵區別——遞迴與迭代 遞迴和迭代可以用來解決程式設計問題。使用遞迴或迭代來解決問題的方法取決於解決問題的方式。遞迴和迭代的關鍵區別在於遞迴是一種在同一個函式中呼叫函式的機制,而迭代是重複執行一組指...

  • 發佈於 2020-10-19 23:58
  • 閲讀 ( 47 )

取決於機器(machine dependent)和機器無關程式碼最佳化(machine independent code optimization)的區別

...j+;j=10+){ b=x+2; a[j]=5*j; } 根據上面的程式碼,在每次迭代中反覆計算b=x+2。一旦計算出b,它不會改變。所以,這條線可以放在迴圈的外面,如下所示。 b=x+2; 對於(j=0;j<10;j++) {a[j]=5*j; } 這叫做程式碼移動。 閱讀下面...

  • 發佈於 2020-10-20 02:55
  • 閲讀 ( 52 )

對於(for)和while迴圈(while loop)的區別

...e迴圈之間的區別。for和while迴圈之間的關鍵區別在於,當迭代次數已知時可以使用for迴圈,而在迭代次數未知時可以使用while迴圈。 目錄 1. 概述和主要區別 2. 什麼是迴圈 3. 什麼是while迴圈 4. for和while迴圈之間的相似性 5. 並排比...

  • 發佈於 2020-10-24 02:28
  • 閲讀 ( 53 )

樹集(treeset)和樹狀圖(treemap)的區別

...串。元素是使用add方法新增的。**順序是A、C、D和B。使用迭代器,儲存的值被列印到螢幕上。元素按A、B、C、D的順序儲存。因此,樹集保持集合元素的升序。如果有另一個元素作為“D”,它將不會列印,因為元素D已經存在於集...

  • 發佈於 2020-10-24 02:47
  • 閲讀 ( 40 )