如何在java中从列表中删除具有相同类的两个不同对象

如何在java中从列表中删除具有相同类的两个不同对象,java,Java,删除具有相同类的两个不同对象的最佳实践是什么?列表包含通过工厂创建代理的类文件 List<? extends Class> listObject = new ArrayList(); ... Factory.createProxyObjectFromclassFile(List<? extends Class> list); 这是不可能的,因为对象的引用不相同。您需要覆盖插入的每个对象的Equals方法,以便它检查objct的类而不是ref id 例如,可以使用重写的e

删除具有相同类的两个不同对象的最佳实践是什么?列表包含通过
工厂创建代理的
文件

List<? extends Class> listObject = new ArrayList();
...
Factory.createProxyObjectFromclassFile(List<? extends Class> list);

这是不可能的,因为
对象的引用不相同。

您需要覆盖插入的每个对象的Equals方法,以便它检查objct的类而不是ref id

例如,可以使用重写的equals()方法创建一个超类ForList,并仅插入扩展thag类的对象


如果您想创建任何可能的类类型,您可能希望使用自己的实现扩展List类,以便它将检查类,而不是使用默认的equals()

我不知道我是否正确理解了您的问题,但如果您的列表由类实例组成,并且您希望从列表中删除某个类的所有实例,则应执行以下操作:

private static void removeMethod(Class<?> clazz) {
    listObject.removeAll(Collections.singleton(clazz));
}
私有静态void removeMethod(类clazz){
removeAll(Collections.singleton(clazz));
}

我猜您想从类列表中删除一个类,所以只需使用
listObject.remove(clazz)
private static void removeMethod(Class<?> clazz) {
    listObject.removeAll(Collections.singleton(clazz));
}