[英]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.