Как использовать собственный метод приведения к отдельному списку - PullRequest
2 голосов
/ 09 апреля 2019

Отдельный метод должен вызывать метод Reduce с пустым списком в качестве идентификатора. Как я могу использовать аккумулятор, чтобы проверить, есть ли значение старого списка уже в новом списке.

@Override
public <R> R reduce(R identity, BiFunction<R, ? super E, R> accumulator) {
    for (E value : this) {
        identity = accumulator.apply(identity, value);
    }
    return identity;
}

@Override
public List<E> distinct() {
    List<E> list = new LinkedList<E>();
    return reduce(list, (a, b) -> );
}

1 Ответ

3 голосов
/ 09 апреля 2019

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

return reduce(list, (acc, element) -> {
    if (!acc.contains(element)) {
        acc.add(element);
    }
    return acc;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...