Я довольно новичок в java потоках и пытаюсь определить, как найти максимум из каждого списка, в списке списков, и заканчиваю одним списком, который содержит максимум из каждого подсписка.
Я могу выполнить это sh, используя for
l oop и stream
примерно так:
// databaseRecordsLists is a List<List<DatabaseRecord>>
List<DatabaseRecord> mostRecentRecords = new ArrayList<>();
for (List<DatabaseRecord> databaseRecords : databaseRecordsLists) {
mostRecentRecords.add(databaseRecords.stream()
.max(Comparator.comparing(DatabaseRecord::getTimestamp))
.orElseThrow(NoSuchElementException::new));
}
Я посмотрел на API flatMap
, но затем я Я получу только одну карту из всех DatabaseRecord
объектов, где мне нужно максимум из каждого отдельного списка.
Есть идеи по более чистому способу выполнения sh этого?