如何使用java流展平映射值
我是Java streams新手,手头有一个问题。我有一张这样的地图:如何使用java流展平映射值,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我是Java streams新手,手头有一个问题。我有一张这样的地图: Map<String, List<String>> specialProductsMap 映射特殊产品映射 我想将映射值展平到一个集合,该集合包含specialProductsMap中列表中的所有字符串值。如何使用Java Streams来完成此操作?您可以使用flatMap操作符来完成此操作。这是它的样子 Set<String> valueSet = specialProductsM
Map<String, List<String>> specialProductsMap
映射特殊产品映射
我想将映射值展平到一个集合,该集合包含
specialProductsMap
中列表中的所有字符串值。如何使用Java Streams来完成此操作?您可以使用flatMap
操作符来完成此操作。这是它的样子
Set<String> valueSet = specialProductsMap.values().stream()
.flatMap(List::stream)
.collect(Collectors.toSet());
Set valueSet=specialProductsMap.values().stream()
.flatMap(列表::流)
.collect(收集器.toSet());
首先从映射中获取值列表,然后像这样使用流api
Set<String> setOfString = specialProductsMap.values().stream().flatMap(list->list.stream())
.collect(Collectors.toSet());
Set setOfsString=specialProductsMap.values().stream().flatMap(列表->列表.stream())
.collect(收集器.toSet());
或者像这样使用方法引用
Set<String> setOfString = specialProductsMap.values().stream().flatMap(List::stream)
.collect(Collectors.toSet());
Set-SetOfsString=specialProductsMap.values().stream().flatMap(列表::流)
.collect(收集器.toSet());
您必须流式传输您的值:
Stream myStream=specialProductsMap.values().Stream();
然后将其展平:
streammydata=myStream.flatMap(List::Stream);
然后收集一组:
Set=myData.collect(Collectors.toSet());