Java 如何使用流api从映射中筛选键值

Java 如何使用流api从映射中筛选键值,java,java-stream,Java,Java Stream,我有一张像这样的地图 contractAttributesMap=new HashMap<String,WsContractAttribute>(); contractAttributesMap.put("entityDisplayName", new WsContractAttribute("label_contractmap_entityDisplayName","entityDisplayName",WsContractAttribute.AttriibuteType.TEXT

我有一张像这样的地图

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
ContractAttributeMap=newHashMap();
contractAttributesMap.put(“entityDisplayName”,新的WsContractAttribute(“label\u contractmap\u entityDisplayName”,“entityDisplayName”,WsContractAttribute.AttributeType.TEXT));
contractAttributesMap.put(“entityNumber”,新的WsContractAttribute(“label_contractmap_entityNumber”,“entityNumber”,WsContractAttribute.AttributeType.TEXT));
//其他代码
我想从键列表中获取值,就像拥有键列表一样,即键名称列表

我知道一种方法

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());
          }


      }
private静态列表getContractAttributes(设置字段){
for(字符串字段名:字段){
ContractAttributeMap.entrySet()
.parallelStream()
.filter(e->e.getKey().contains(fieldName))
.map(e->e.getKey())
.collect(Collectors.toList());
}
}
但我不想循环,而是想将这个列表本身传递到流api中,这将过滤匹配值并返回列表。 这是可能的。!!
提前感谢。

这将由@aioobe解释

  private static List<WsContractAttribute> getContractAttributes(Set<String> fields){
          List<WsContractAttribute> list=fields.stream().map(contractAttributesMap::get).collect(Collectors.toList());
          return list;
      }
private静态列表getContractAttributes(设置字段){
List List=fields.stream().map(ContractAttributeMap::get).collect(Collectors.toList());
退货清单;
}

这将由@aioobe解释的

  private static List<WsContractAttribute> getContractAttributes(Set<String> fields){
          List<WsContractAttribute> list=fields.stream().map(contractAttributesMap::get).collect(Collectors.toList());
          return list;
      }
private静态列表getContractAttributes(设置字段){
List List=fields.stream().map(ContractAttributeMap::get).collect(Collectors.toList());
退货清单;
}

也许您正在寻找类似于
字段.stream().map(contractAttributesMap::get).collect(toList())
?是的,非常感谢:)也许您正在寻找类似于
字段.stream().map(contractAttributesMap::get).collect(toList())
?是的,非常感谢:)