Java 8 - 比较两个集合
Java 8 - Compare two collections
我不知道如何比较 Java 中的两个相同集合列表。
这应该可行,但由于 void 参数而无法编译。断言需要 return 值。
assertTrue(dateTimeCreated.stream().forEach(t -> dateTimeUpdated.stream().allMatch(u-> u.compareTo(t) >= 0)));
任何人都可以帮助我如何指定比较并将其与断言一起使用吗?
谢谢
因为您正在检查列表是否包含与它相同的元素。您需要使用其他方式,其中之一可以是:
list2.stream().filter(list1::contains).count() == list2.size()
这将检查您正在获取的天气 return 列表具有您正在检查的相同元素
如果我没理解错的话,这就是你要实现的目标:
boolean allGreater = true;
for (int i = 0; i < dateTimeCreated.size(); i++)
if (!(dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0))
allGreater = false;
assertTrue(allGreater);
你可以stream来统计索引然后查看条件:
assertTrue(IntStream.range(0, dateTimeCreated.size())
.allMatch(i -> dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0));
我不知道如何比较 Java 中的两个相同集合列表。 这应该可行,但由于 void 参数而无法编译。断言需要 return 值。
assertTrue(dateTimeCreated.stream().forEach(t -> dateTimeUpdated.stream().allMatch(u-> u.compareTo(t) >= 0)));
任何人都可以帮助我如何指定比较并将其与断言一起使用吗? 谢谢
因为您正在检查列表是否包含与它相同的元素。您需要使用其他方式,其中之一可以是:
list2.stream().filter(list1::contains).count() == list2.size()
这将检查您正在获取的天气 return 列表具有您正在检查的相同元素
如果我没理解错的话,这就是你要实现的目标:
boolean allGreater = true;
for (int i = 0; i < dateTimeCreated.size(); i++)
if (!(dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0))
allGreater = false;
assertTrue(allGreater);
你可以stream来统计索引然后查看条件:
assertTrue(IntStream.range(0, dateTimeCreated.size())
.allMatch(i -> dateTimeCreated.get(i).compareTo(dateTimeUpdated.get(i)) <= 0));