2017-11-20 1 views

Antwort

8

Sie können die Einträge des Eingangs Map filtern, um nur Einträge zu behalten, deren Wert den Schlüssel "a string" enthält. Dann Collectors.toMap verwenden sie in eine neue Map zu sammeln:

Map<Key1, CustomObject> map = 
    inputMap.entrySet() 
      .stream() 
      .filter(e -> e.getValue().containsKey("a string")) 
      .collect(Collectors.toMap(Map.Entry::getKey, 
             e -> e.getValue().get("a string"))); 
+0

ja, das funktioniert, danke: D –

0

es funktioniert auch

Map<String, SocialCredentials> collect = configData.getData() 
       .entrySet().stream() 
       .map(map -> map.getValue() 
         .entrySet().stream() 
         .filter(entry -> 
          profile.toLowerCase().equals(entry.getKey())) 
         .collect(Collectors.toMap(p -> map.getKey(), 
                Map.Entry::getValue))) 
       .collect(HashMap::new, Map::putAll, Map::putAll); 

aber Ihre Lösung ist besser geeignet in meinem Fall.

Verwandte Themen