我有两个Foo集合。我无法更改Foo的实现,而Foo的equals函数执行不正确。我也不能从Foo继承。我做自定义相等函数:我已经实现了使用番石榴的Predicate函数。为了给你一个想法,实现看起来有点像这样。使用自定义相等函数检查两个集合是否相同(忽略顺序)
new Predicate<Pair<Foo, Foo>>() {
@Override
public boolean apply(@Nullable Pair<Foo, Foo> input) {
Foo one = input.getFirst();
Foo two = input.getSecond();
return Objects.equals(one.getId(), two.getId());
}
};
现在,我需要检查,如果我富的两个集合包含相同的项目忽略使用此自定义功能的平等我正在寻找最好的方式顺序
做到这一点。
您可以使用集吗?否则,你可以从list1中检查list2'containsAll'项目,反之亦然。 – mvd
我知道的Set的任何实现都使用equals函数来实现相等。如果有一个实现set的地方,你可以定义一个自定义相等函数,就像我使用的那个(或类似的)函数那么这将是一个很好的解决方案 – Hendrik