我有一张类似
的地图contractAttributesMap=new HashMap<String,WsContractAttribute>();
contractAttributesMap.put("entityDisplayName", new WsContractAttribute("label_contractmap_entityDisplayName","entityDisplayName",WsContractAttribute.AttriibuteType.TEXT));
contractAttributesMap.put("entityNumber",new WsContractAttribute("label_contractmap_entityNumber","entityNumber",WsContractAttribute.AttriibuteType.TEXT));
//other code
我想从密钥列表中获取值,例如具有密钥列表,即密钥名称列表。
我知道一种方式
private static List<WsContractAttribute> getContractAttributes(Set<String> fields){
for(String fieldName:fields){
contractAttributesMap.entrySet()
.parallelStream()
.filter(e -> e.getKey().contains(fieldName))
.map(e -> e.getKey())
.collect(Collectors.toList());
}
}
但是我想把这个列表本身传递给流api而不是循环,这将过滤匹配的值和返回列表。 这是可能的。!! 在此先感谢。
答案 0 :(得分:0)
这将由@aioobe
解释 private static List<WsContractAttribute> getContractAttributes(Set<String> fields){
List<WsContractAttribute> list=fields.stream().map(contractAttributesMap::get).collect(Collectors.toList());
return list;
}