Условное изменение коллекций с помощью Java StreamsJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Условное изменение коллекций с помощью Java Streams

Сообщение Anonymous »

Java 11 здесь. У меня есть 2 экземпляра List: последний и текущий. «Последний» список — это список последних Fizzbuzzs, вышедших из печати. «Текущий» список — это список Fizbuzzes, которые есть в моей базе данных. Я сравниваю эти списки.
Мне нужно сравнить эти списки и создать третий список, дополнения, который будет содержать все Fizzbuzzs из последнего списка, которые не являются находится внутри текущего списка. Это список «новых» Fizzbuzzes, которых нет в базе данных.
Кроме того, мне нужно установить поле ProcessedAt каждого дополнения () на ту же текущую дату/время. Я хотел бы попытаться выполнить все это в режиме реального времени, используя API Java Stream. Я могу сделать это «старомодным» способом:

Код: Выделить всё

List latestList = getFromFile();
List currentList = getFromDatabase();
List additions = new ArrayList();
Instant now = Instant.now();
for (Fizzbuzz latest : latestList) {
if (!currentList.contains(latest)) {
latest.setProcessedAt(now);
additions.add(latest);
}
}
Моя лучшая попытка использования Java Stream API:

Код: Выделить всё

List latestList = getFromFile();
List currentList = getFromDatabase();
Instant now = Instant.now();
List additions = latestList.stream()
.filter(latest -> !currentList.contains(latest))
.forEach(addition -> {
addition.setProcessedAt(now);
})
.collect(Collectors.toList());
При этом генерируется ошибка компилятора, поскольку forEach ничего не возвращает. Может ли кто-нибудь заметить, где я ошибаюсь?

Подробнее здесь: https://stackoverflow.com/questions/702 ... va-streams
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»