在 Java 中是否有一个可用于存储唯一类对象的集合?
例如,我有一个父类 ( )Parent
和几个直接继承自.ChildA
ChildB
Parent
现在,我需要将每个类的实例存储在一个集合 ( Collection<Parent>
) 中。当我ChildA
一次添加到集合中时,我一定不能添加更多ChildA
的。
我希望能够通过调用来检索每个实例get(ClassB.class)
,并以类似的方式将其删除。
是否已经存在提供该功能的集合,还是我必须编写自己的实现?
在 Java 中是否有一个可用于存储唯一类对象的集合?
例如,我有一个父类 ( )Parent
和几个直接继承自.ChildA
ChildB
Parent
现在,我需要将每个类的实例存储在一个集合 ( Collection<Parent>
) 中。当我ChildA
一次添加到集合中时,我一定不能添加更多ChildA
的。
我希望能够通过调用来检索每个实例get(ClassB.class)
,并以类似的方式将其删除。
是否已经存在提供该功能的集合,还是我必须编写自己的实现?
编写您自己的使用 a 的类Map<Class<? extends Parent>, Parent>
:
private Map<Class<? extends Parent>, Parent> map = new HashMap<>();
public void add(Parent p) {
if (!map.containsKey(p.getClass()) {
map.put(p.getClass(), p);
}
}
public Parent get(Class<? extends Parent> clazz) {
return map.get(clazz);
}