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

如何使用 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()));


慕村225694
浏览 94回答 1
1回答

守着一只汪

你不需要map。只需filter按照您的标准使用,并findFirst作为终端操作:Optional<Map<String,&nbsp;Object>> &nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;data.values() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.filter(m&nbsp;->&nbsp;m.get(Constants.USER_TRAN_ID).equals(stsTxn.getSeedTrade().getTransactionId())) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.findFirst();如果在找不到匹配项时需要默认值(例如 null),请使用:Map<String,&nbsp;Object>&nbsp;closedTaxLotByTxnId&nbsp;= &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.values() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.filter(m&nbsp;->&nbsp;m.get(Constants.USER_TRAN_ID).equals(stsTxn.getSeedTrade().getTransactionId())) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.findFirst() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.orElse(null);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java