【发布时间】:2020-06-28 09:45:20
【问题描述】:
想要通过使用过滤器将值分配给变量并首先查找(以避免匹配剩余并保存迭代)。
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 次尝试中找到匹配项,是否可以在流式传输时以某种方式执行此操作并跳过其他迭代?
【问题讨论】:
-
Optional#get()? -
@donquih0te Optional.get 将返回我 Map
> 所以我必须再次迭代内部映射并匹配键并获取他的值
标签: java dictionary collections java-8