Java 8 - 比较两个集合

时间:2018-06-12 11:38:48

标签: collections nunit

我无法弄清楚如何在Java中比较两个相同的集合List。 这应该有效,但由于void参数而无法编译。断言期望返回值。

assertTrue(dateTimeCreated.stream().forEach(t -> dateTimeUpdated.stream().allMatch(u-> u.compareTo(t) >= 0)));

有人可以帮助我如何指定比较并将其与断言一起使用吗? 感谢

2 个答案:

答案 0 :(得分:1)

如果我理解正确,这就是你想要实现的目标:

boolean allGreater = true;
for (int i = 0; i < dateTimeCreated.size(); i++)
    if (!(dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0))
        allGreater = false;
assertTrue(allGreater);

您可以流式传输以计算索引并检查条件:

assertTrue(IntStream.range(0, dateTimeCreated.size())
                    .allMatch(i -> dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0));

答案 1 :(得分:0)

因为您正在检查列表是否包含与其相同的元素。您需要使用其中一种方式:

where

这将检查您获得的天气返回列表是否具有您要检查的相同元素