任何标准的库函数来比较无序列表?

时间:2017-09-23 01:07:28

标签: java guava

我想比较两个无序列表,目前我正在通过以下方式进行比较。有没有更好的方法来执行此操作,因为我重复我的代码两次(对于空检查&然后转换为Set)。也许Guava中有一个库可以做到这一点吗?

public class CompareUnorderedList implements BiPredicate<Object, Object> {
    private Function<Object, Object> mapping;
    public CompareUnorderedList(Function<Object, Object> mapping) {
       this.mapping = mapping;
    }
    @Override
    public boolean test(Object o1, Object o2) {
        o1 = o1 != null ? o1 : Collections.EMPTY_LIST;
        o2 = o2 != null ? o2 : Collections.EMPTY_LIST;

        Set<Object> firstSet = (List<Object>o1).stream().map(mapping).collect(Collectors.toSet());
        Set<Object> secondSet = (List<Object>o2).stream().map(mapping).collect(Collectors.toSet());
        return firstSet.equals(secondSet);
    }
}

0 个答案:

没有答案