我有一个Class A对象的集合
class A {
String code;
long timestamp;
long largestTimestamp;
}
我需要为每个对象填充largestTimestamp字段(相同代码组中具有最大“timestamp”值的对象)。我可以按照以下两个步骤完成此操作 -
Map<String, Long> largestTimestampMap = list.stream().collect(Collectors.toMap(A::getCode, A::getTimestamp, Long::max));
list.forEach(a -> a.setLargestTimestamp(largestTimestampMap.get(a.getCode())));
有没有一种方法将它们合并成一个流链?
list.replaceAll(a -> {a.setLargestTimestamp(largestTimestampMap.get(a.getCode()));return a;});
替代list.forEach(...)
。 - Hadi J