如何使用 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條經驗 獲得超4個贊
你不需要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
提交
取消