Если хотите присвоить значение переменной с помощью фильтра и сначала найти (чтобы избежать совпадения покоя и сохранения итерации).
String output = ""
Map<String, Map<String, CustomObj>> finalMap = new LinkedHashMap<>();;
Map<String, CustomObj> isinMap = new HashMap<>();
isinMap.put("REL", new CustomObj("RELIANCE ISIN"));
isinMap.put("AXIS", new CustomObj("AXISBANK ISIN"));
Map<String, CustomObj> cusipMap = new HashMap<>();
cusipMap.put("CREL", new CustomObj("RELIANCE CUSIP"));
cusipMap.put("CAXIS", new CustomObj("AXISBANK CUSIP"));
finalMap.put("ISIN",isinMap);
finalMap.put("CUSIP",cusipMap);
Map<String,String> tradeDetails = new HashMap<>();
tradeDetails.put("ISIN","AXIS");
tradeDetails.put("CUSIP","AXIS2");
finalMap.entrySet().stream().filter(finalMapEntry-> {
String value = tradeDetails.get(finalMapEntry.getKey());
return finalMapEntry.getValue().containsKey(value);
// I want following
//output = finalMapEntry.getValue().get(value).get(); //output should be AXISBANK ISIN
}
).findFirst();
Я знаю, findFirst()
вернет мне первую запись в Optional
но я хочу, чтобы значение внутреннего ключа карты было присвоено выходной переменной. Возможно ли сделать это как-то во время потоковой передачи, а также пропустить другие итерации, если совпадение найдено с первой или n-й попытки?