我无法弄清楚如何在Java中比较两个相同的集合List。 这应该有效,但由于void参数而无法编译。断言期望返回值。
assertTrue(dateTimeCreated.stream().forEach(t -> dateTimeUpdated.stream().allMatch(u-> u.compareTo(t) >= 0)));
有人可以帮助我如何指定比较并将其与断言一起使用吗? 感谢
答案 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
这将检查您获得的天气返回列表是否具有您要检查的相同元素