[英]Confusion about collections, enumeration, and iterator in Java
我的教科書幾乎沒有談到Java中的枚舉,而我所看過的視頻並沒有解釋太多。 所以根據我的理解,枚舉就像一個完全不同的類,你可以存儲常量。有人可以向我展示常量,也許可以向我展示更好的例子嗎? 就像我在看到顏色,方向之類的例子之后了解常量是什么,並且在之前的視頻中是人,而在學年期間我的項目的枚舉版中,它是命令詞。 但我不是100%理解這個概念或如何使用。
另外,當你可以制作一個集合時,枚舉的重點是什么? 例如,我看到的最后一個視頻,視頻制作者以name(String description,int age)的格式制作了人物的枚舉,這就是他如何定義他的構造函數並且他已經獲得並設置了方法。 這樣做的好處是什么,而不僅僅是以相同的方式創建一個人物對象,他們創建一個集合並在那里存儲人物對象?
我查看了上面的內容,看了這個帖子后: Java Enumeration和Iterator之間的區別迭代器是讓我遍歷集合的東西,而且這一次我認為枚舉就像是一個不同的類。 但在線程中他們正在比較它們。 枚舉就像迭代器,但沒有remove方法。 這個枚舉與我上面談到的有什么不同嗎?
您在幾個不同的類之間感到困惑。
enum
Enumeration
Iterator
enum
是枚舉常量 ,即可以采用多個定義值的常量,例如
public enum Gender {
MALE,
FEMALE;
}
它旨在提供類型安全。
Enumeration
是Collection
s API的一個現已棄用的部分 - 忘了這一點。 它被Iterator
取代。
Iterator
是四人幫所描述的迭代器模式的實現。
對於為什么要使用一個Iterator
,而不是Collection
,也許我的答案在這里會有所幫助。
對於name(String description,int age)格式的人的枚舉,這就是他如何定義他的構造函數,並且他已經獲取並設置了方法 。 這是一個很大的禁忌。
enum
應該是常量,所以不應該有setter
方法。 enum
是一組定義的值,如上例所示。
如果你想要一個people
的Collection
,那么Collection<Person>
的Person
類將是正確的解決方案。
所以,總結一下。 使用enum
作為常量值; 使用Collection
來收集東西。 並且不要使用Enumeration
- 忘記它存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.