[英]Java 8 Collector with string concatenating
我有這個課:
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.mapping(Pair::getName, Collectors.joining())
。 joining
處理字符串,然后mapping
從對對象中提取它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.