Tis*_*ash 5 java java-8 java-stream
如果地图的大小为 1,则应返回其键。如果它的大小大于 1,则迭代 map 中的值,并且应该返回该键的键,该键对于某个属性具有最大值。下面是我的代码片段。我想用 Java 8 流 api 实现相同的目标。
public MessageType getOrgReversalTargetMti(Map<MessageType, List<TVO>> map) {
MessageType targetMessageType = null;
if (1 == map.size()) {
targetMessageType = map.keySet().iterator().next();
}
else {
long maxNumber = 0;
for (final MessageType messageType : map.keySet()) {
List<TVO> list = map.get(messageType);
long trace = list.get(0).getTrace();
if (trace > maxNumber) {
maxNumber = trace;
targetMessageType = messageType;
}
}
}
return targetMessageType;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Streamwithmax()终端操作:
public MessageType getOrgReversalTargetMti(Map<MessageType, List<TVO>> map) {
return map.entrySet()
.stream()
.max(Comparator.comparing(e -> e.getValue().get(0).getTrace()))
.map(Map.Entry::getKey())
.orElse(null);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |