[英]How to flatten map values using java streams
我是Java流的新手,手头有问题。 我有这样的地图:
Map<String, List<String>> specialProductsMap
我想将映射值展平为一个集合,该集合包含specialProductsMap
中列表中的所有String值。 我如何使用Java Streams执行此操作?
您可以使用flatMap
运算符来完成此操作。 这是它的外观。
Set<String> valueSet = specialProductsMap.values().stream()
.flatMap(List::stream)
.collect(Collectors.toSet());
首先从map获取值列表然后像这样使用stream api
Set<String> setOfString = specialProductsMap.values().stream().flatMap(list->list.stream())
.collect(Collectors.toSet());
或者像这样使用方法参考
Set<String> setOfString = specialProductsMap.values().stream().flatMap(List::stream)
.collect(Collectors.toSet());
你必须流式传输你的价值观:
Stream<List<String>> myStream = specialProductsMap.values().stream();
然后压扁它:
Stream<String> myData = myStream.flatMap(List::stream);
然后收集一组:
Set<String> = myData.collect(Collectors.toSet());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.