有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java创建一个集合,每个类有一个对象

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

例如,我有一个父类(Parent)和几个直接从Parent继承的子类(ChildAChildB,等等)

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

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

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


共 (2) 个答案

  1. # 1 楼答案

    编写自己的类,使用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);
    }