0
我有这个类:的Java 8收藏家用绳子串联
class Pair {
public String name;
public int age;
}
和一个列表:
List<Pair> list = new LinkedList<>();
list.add(new Pair("One", 25));
list.add(new Pair("Two", 18));
list.add(new Pair("Three", 18));
list.add(new Pair("Four", 10));
凡Pair
只包含两个值,一个String
和int
。
我想将此数据按其age
值分组,但也要连接name
。在最后我想获得一个Map<Integer, String>
这样的:
25 - One
18 - TwoThree
10 - Four
我尝试这样做:
list.stream().collect(Collectors.groupingBy(Pair::getValue, /* Collectors.??? */));
有喜欢summingInt
方法,但找不到String
值什么。
我看到有一个Collectors.reducing
方法,我猜也许我们可以使用它,但不知道如何。
有没有一个优雅的方式来建立在Collectors
或我必须做我自己的?
听起来像你正在寻找'Collectors.joining'。 –
如何在''Collectors.joining''中指定我想连接'name'的值?据我所知,你可以将它应用于“String”列表,但我在这里列出了'Pair'' –
'Collectors.mapping(Pair :: getName,Collectors.joining())''。 –