Java 8 - Сравните две коллекции - PullRequest
0 голосов
/ 12 июня 2018

Я не могу понять, как сравнить две одинаковые коллекции List в Java.Это должно работать, но не компилируется из-за аргумента void.Assert ожидает возвращаемого значения.

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

Кто-нибудь может мне помочь, как определить сравнение и использовать его с assert?Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Если я правильно понял, это то, что вы пытаетесь достичь:

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));
0 голосов
/ 12 июня 2018

, поскольку вы проверяете это, если список содержит тот же элемент, что и он.Вам нужно использовать другой способ, которым один из них может быть:

list2.stream().filter(list1::contains).count() == list2.size()

это проверит погоду, которую вы получаете, список возврата содержит те же элементы, которые вы проверяете для

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...