簡體   English   中英

關於Java中的集合,枚舉和迭代器的困惑

[英]Confusion about collections, enumeration, and iterator in Java

我的教科書幾乎沒有談到Java中的枚舉,而我所看過的視頻並沒有解釋太多。 所以根據我的理解,枚舉就像一個完全不同的類,你可以存儲常量。有人可以向我展示常量,也許可以向我展示更好的例子嗎? 就像我在看到顏色,方向之類的例子之后了解常量是什么,並且在之前的視頻中是人,而在學年期間我的項目的枚舉版中,它是命令詞。 但我不是100%理解這個概念或如何使用。

  1. 另外,當你可以制作一個集合時,枚舉的重點是什么? 例如,我看到的最后一個視頻,視頻制作者以name(String description,int age)的格式制作了人物的枚舉,這就是他如何定義他的構造函數並且他已經獲得並設置了方法。 這樣做的好處是什么,而不僅僅是以相同的方式創建一個人物對象,他們創建一個集合並在那里存儲人物對象?

  2. 我查看了上面的內容,看了這個帖子后: Java Enumeration和Iterator之間的區別迭代器是讓我遍歷集合的東西,而且這一次我認為枚舉就像是一個不同的類。 但在線程中他們正在比較它們。 枚舉就像迭代器,但沒有remove方法。 這個枚舉與我上面談到的有什么不同嗎?

您在幾個不同的類之間感到困惑。

  1. enum
  2. Enumeration
  3. Iterator

enum枚舉常量 ,即可以采用多個定義值的常量,例如

public enum Gender {
    MALE,
    FEMALE;
}

它旨在提供類型安全。

EnumerationCollection s API的一個現已棄用的部分 - 忘了這一點。 它被Iterator取代。

Iterator是四人幫所描述的迭代器模式的實現。

對於為什么要使用一個Iterator ,而不是Collection ,也許我的答案在這里會有所幫助。

對於name(String description,int age)格式的人的枚舉,這就是他如何定義他的構造函數,並且他已經獲取並設置了方法 這是一個很大的禁忌。

enum應該是常量,所以不應該有setter方法。 enum是一組定義的值,如上例所示。

如果你想要一個peopleCollection ,那么Collection<Person>Person類將是正確的解決方案。

所以,總結一下。 使用enum作為常量值; 使用Collection來收集東西。 並且不要使用Enumeration - 忘記它存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM