为了账号安全,请及时绑定邮箱和手机立即绑定

地图的地图根据内部地图值获取外部地图

地图的地图根据内部地图值获取外部地图

慕村225694 2022-12-21 10:12:03
如何使用 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()));
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

你不需要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);


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信