如何使用 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);
添加回答
举报
0/150
提交
取消