【发布时间】:2013-08-17 12:06:23
【问题描述】:
在 Java 中是否存在可用于存储唯一类对象的集合?
例如,我有一个父类 (Parent) 和几个直接继承自 Parent 的子类(ChildA、ChildB 等)。
现在,我需要将每个类的实例存储在一个集合中 (Collection<Parent>)。当我将ChildA 添加到集合中一次时,我一定无法添加更多ChildA。
我希望能够通过调用get(ClassB.class) 来检索每个实例,并以类似的方式将其删除。
是否已经存在提供该功能的集合,还是我必须编写自己的实现?
【问题讨论】:
-
嗯,你可以随时使用
Set。 -
Set允许我在其中存储两个不同的ClassA实例吗?这不是我要找的。span> -
您可以创建您自己的扩展 Set(例如 HashSet)的类。覆盖 add() 方法以合并您想要的唯一性的逻辑。如果类的对象不存在,则迭代现有集合,然后添加 else 抛出运行时异常。
-
我认为在 Java 中没有任何您需要的内置实现。您必须编写自己的实现。
-
@rocketboy 好的,谢谢。
标签: java collections