如何使用公共密钥从地图的内部地图获取所有值?
我有一张地图地图: HashMap<String, Map>
。
我只需要使用DistinctCode
从内部地图中提取String
值。 我怎么能在一行或一个声明中这样做?
换句话说,我需要一个像这样的方法:
mapOfMap.find(distinctcode)
它是否可以在一行或声明中使用?
在Java 8中
List list = map.values().stream().map(m -> m.get(distinctcode)).filter(Objects::nonNull).collect(Collectors.toList());
使用Java 8,您可以做到
Set strings = mapOfMaps.values().stream() .map(m -> m.get(distinctCode)) .filter(v -> v != null) .collect(Collectors.toSet());
DistinctCode dv = ...; Stream res = mom.values().stream().map(p->p.get(dv)).filter(p->p!=null);
稍微不同的Java 8方法没有空过滤:
final Set values = mapOfMaps.values().stream() .filter(m -> m.containsKey(distinctCode)) .map(m -> m.get(distinctCode)) .collect(Collectors.toSet()); //this can be simplified using a static import