gpt4 book ai didi

java - map 的 map 根据内部 map 值获取外部 map

转载 作者:行者123 更新时间:2023-11-30 06:41:03 28 4
gpt4 key购买 nike

如何使用 Java8 编写以下代码?

for (Entry<Integer, Map<String, Object>> entry : data.entrySet()) {
Map<String, Object> value = entry.getValue();
if (value.get(Constants.USER_TRAN_ID).equals(stsTxn.getSeedTrade().getTransactionId())) {
closedTaxLotByTxnId = value;
break;
}
}

这之后我就一头雾水了

data.values().stream().map(e -> e.get(Constants.USER_TRAN_ID)).filter(txnId -> txnId.equals(stsTxn.getSeedTrade().getTransactionId()));

最佳答案

您不需要 map 。只需将 filter 与您的条件一起使用,并将 findFirst 作为终端操作:

Optional<Map<String, Object>>
value = data.values()
.stream()
.filter(m -> m.get(Constants.USER_TRAN_ID).equals(stsTxn.getSeedTrade().getTransactionId()))
.findFirst();

如果在找不到匹配项时需要默认值(例如 null),请使用:

Map<String, Object> closedTaxLotByTxnId =
data.values()
.stream()
.filter(m -> m.get(Constants.USER_TRAN_ID).equals(stsTxn.getSeedTrade().getTransactionId()))
.findFirst()
.orElse(null);

关于java - map 的 map 根据内部 map 值获取外部 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56336831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com