1

在 Java 中是否有一个可用于存储唯一类对象的集合?

例如,我有一个父类 ( )Parent和几个直接继承自.ChildAChildBParent

现在,我需要将每个类的实例存储在一个集合 ( Collection<Parent>) 中。当我ChildA一次添加到集合中时,我一定不能添加更多ChildA的。

我希望能够通过调用来检索每个实例get(ClassB.class),并以类似的方式将其删除。

是否已经存在提供该功能的集合,还是我必须编写自己的实现?

4

2 回答 2

3

编写您自己的使用 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);
}
于 2013-08-17T12:13:26.920 回答
-1

请看看 HashSet http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html

于 2013-08-17T12:08:04.890 回答