如何在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));
}