我必须删除列表中的重复对象。它是对象博客中的一个列表,如下所示:
public class Blog {
private String title;
private String author;
private String url;
private String description;
...
}
重复对象是具有与其他对象相同的标题、作者、url 和描述的对象。
而且我无法更改对象。我不能把新方法放在上面。
我该怎么做呢?
原文由 Diego Faria 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您无法编辑类的源代码(为什么不呢?),那么您需要遍历列表并根据提到的四个标准(“标题、作者、网址和描述”)比较每个项目。
为了以高效的方式执行此操作,我将创建一个新类,例如
BlogKey
它包含这四个元素并 正确实现equals()
和hashCode()
然后,您可以遍历原始列表,为每个列表构造一个BlogKey
并添加到一个HashMap
:然而,最简单的方法是编辑
Blog
的原始源代码,以便正确实现equals()
和hashCode()
。