我有一张像

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中,它将过滤匹配的值并返回列表。
有可能!!
提前致谢。

最佳答案

这将通过@aioobe的说明来完成

  private static List<WsContractAttribute> getContractAttributes(Set<String> fields){
          List<WsContractAttribute> list=fields.stream().map(contractAttributesMap::get).collect(Collectors.toList());
          return list;
      }

10-04 14:10