一个key对应多个值怎么实现steam流
时间: 2024-03-01 21:55:01 浏览: 97
在流式处理中,我们可以使用Java 8中的Collectors.groupingBy()方法来实现一个Key对应多个值的Map。这个方法接受一个分类器函数(Collector),将流中的元素按照指定的Key分组,然后将同一组的元素收集到一个List中,并将这个List作为Key对应的值。
例如,假设我们有一个包含多个Person对象的流,每个Person对象有一个城市属性和一个年龄属性,我们想要按照城市分组,将同一城市的Person对象收集到一个List中。我们可以使用以下代码实现:
```
Map<String, List<Person>> map = personStream.collect(Collectors.groupingBy(Person::getCity));
```
这样,我们就得到了一个Map<String, List<Person>>,其中Key为城市名称,Value为该城市对应的Person对象列表。在这个Map中,一个Key对应多个值。
阅读全文