【发布时间】:2014-01-09 13:17:39
【问题描述】:
我的教科书几乎没有谈到 Java 中的枚举,而我看过的视频也没有太多解释。所以据我了解,枚举就像一个完全不同的类 你可以在哪里存储常量。有人可以向我扩展关于常量的信息吗? 给我看更好的例子?就像我在看到示例后了解常量是什么 例如颜色、方向,在之前的视频中是人,而在枚举中 我在学年的一个项目的版本,它是命令词。但我不是 100% 了解概念或如何使用。
另外,当您可以创建一个集合时,枚举的意义何在?像 例如,我看到的最后一个视频,视频制作者以以下格式对人进行了枚举 name(String description, int age),这就是他定义他的构造函数的方式,他有 获取和设置方法。这样做的好处是什么,而不是仅仅创造一个人 以相同的方式创建对象,他们创建一个集合并将人员对象存储在 那里?
我去上面查了一下,看到这个帖子后: Difference between Java Enumeration and Iterator 迭代器可以让我循环遍历一个集合,而一直以来我 认为枚举就像一个不同的类。但在线程中,他们是 比较它们。枚举就像一个迭代器,但没有删除 方法。这个枚举与我上面所说的不同吗?
【问题讨论】:
-
去阅读
Iterator和Enumeration的javadoc。 -
您对
enum和Enumeration感到困惑。enum是一种特殊类型的单例类,而Enumeration是已弃用的Iterator模式。忘记Enumeration。 -
只要你有
public static int SOMETHING=0; public static int SOMETHINGELSE=1;等,然后使用SOMETHING与0完全分开,它就会被存储起来,因为你可以将其形式化为枚举 -
@Abdul 不,
Enumeration与enum无关。正如鲍里斯所说,忘记Enumeration,因为Iterator基本上已经取代了它。至于enum与Collections,enum更适合用于静态、常量数据,而Collection更适合用于动态生成和/或变化的数据。 -
@Abdul 或多或少。正如鲍里斯的回答基本上所说,
enum对于枚举常量很有用。它对于包含 set 的不同但相关的常量 enumerated 很有用。因此,基本指南针方向(北、南、东、西)的enum将是一个很好的用例。范围(通用或其他)将取决于您的应用程序设计。我觉得我的解释可能有点欠缺。有意义吗?
标签: java collections enums iterator enumeration